Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,526Letters: 13Defects: 1,322counted 4 min ago
teppi

Server definition

Hash
sha256:fc1118ea023698365d0bdd2adacf145305bc68d4b7ebc444f0a0da07030d01a4
What it is
What a remote MCP server returned when asked what it offers: 230 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Step 1 of agentic team invite acceptance. Validates an invite token and sends a 6-digit verification code to the invited email. Then call accept_team_invite_verify with the code to join and receive an MCP API key.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "token": { "description": "Invite token returned by create_team_member_invite or from the invite link", "type": "string" } }, "required": [ "token" ], "type": "object" }, "name": "accept_team_invite_request", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Step 2 of agentic team invite acceptance. Verifies the emailed code, joins the invited user to the company, and returns a one-time MCP API key for that user.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "code": { "description": "6-digit code from the invite email", "maxLength": 6, "minLength": 6, "type": "string" }, "name": { "description": "Optional display name when creating a new user", "maxLength": 120, "minLength": 1, "type": "string" }, "token": { "description": "Invite token returned by create_team_member_invite or from the invite link", "type": "string" } }, "required": [ "token", "code" ], "type": "object" }, "name": "accept_team_invite_verify", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Add a free-form text document to the knowledge base. Use for pasted policies, FAQs, internal notes, brand voice references — anything the agent should be able to retrieve later. Stored as a single document; agent-side embedding/retrieval happens elsewhere.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "content": { "description": "Document body text", "minLength": 1, "type": "string" }, "name": { "description": "Friendly title for the document", "maxLength": 200, "minLength": 1, "type": "string" } }, "required": [ "name", "content" ], "type": "object" }, "name": "add_knowledge_text", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Append one or more blocks to the end of a post. Each block must be a valid block object: { id, version, type, data }. Types: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callout, gallery, cta, accordion, product.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "__schema0": { "oneOf": [ { "properties": { "data": { "properties": { "html": { "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "paragraph", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "anchor": { "type": "string" }, "level": { "anyOf": [ { "const": 1, "type": "number" }, { "const": 2, "type": "number" }, { "const": 3, "type": "number" }, { "const": 4, "type": "number" } ] }, "text": { "minLength": 1, "type": "string" } }, "required": [ "level", "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "heading", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "height": { "exclusiveMinimum": 0, "type": "number" }, "url": { "format": "uri", "type": "string" }, "width": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "url", "alt" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "image", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array" }, "ordered": { "type": "boolean" } }, "required": [ "ordered", "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "list", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "cite": { "type": "string" }, "text": { "minLength": 1, "type": "string" } }, "required": [ "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "quote", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "code": { "minLength": 1, "type": "string" }, "lang": { "type": "string" } }, "required": [ "lang", "code" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "code", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "additionalProperties": false, "properties": {}, "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "divider", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "size": { "enum": [ "sm", "md", "lg" ], "type": "string" } }, "required": [ "size" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "spacer", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "provider": { "enum": [ "youtube", "vimeo", "iframe" ], "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "provider", "url" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "embed", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "html": { "minLength": 1, "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "html", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "startSeconds": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" }, "videoId": { "pattern": "^[A-Za-z0-9_-]{11}$", "type": "string" } }, "required": [ "videoId" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "youtube", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "displayName": { "type": "string" }, "icon": { "enum": [ "pdf", "doc", "image", "video", "audio", "generic" ], "type": "string" }, "mimeType": { "minLength": 1, "type": "string" }, "originalName": { "minLength": 1, "type": "string" }, "sizeBytes": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "mimeType", "sizeBytes", "originalName" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "file", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "answer": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "question": { "minLength": 1, "type": "string" } }, "required": [ "id", "question", "answer" ], "type": "object" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "faq", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "body": { "minLength": 1, "type": "string" }, "title": { "type": "string" }, "tone": { "enum": [ "info", "success", "warning", "danger", "note" ], "type": "string" } }, "required": [ "tone", "body" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "callout", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "images": { "items": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, "type": "array" }, "layout": { "enum": [ "grid", "masonry", "carousel" ], "type": "string" } }, "required": [ "layout", "images" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "gallery", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "href": { "minLength": 1, "type": "string" }, "label": { "minLength": 1, "type": "string" }, "openInNewTab": { "type": "boolean" }, "style": { "enum": [ "primary", "secondary", "ghost" ], "type": "string" } }, "required": [ "label", "href" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "cta", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "body": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "title": { "minLength": 1, "type": "string" } }, "required": [ "id", "title", "body" ], "type": "object" }, "type": "array" }, "semantic": { "enum": [ "faq", "plain" ], "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "accordion", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "layout": { "enum": [ "card", "inline" ], "type": "string" }, "slug": { "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "product", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "align": { "enum": [ "start", "center", "stretch" ], "type": "string" }, "columns": { "items": { "properties": { "blocks": { "items": { "allOf": [ { "$ref": "#/definitions/__schema0" } ] }, "type": "array" }, "span": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "blocks" ], "type": "object" }, "maxItems": 4, "minItems": 2, "type": "array" }, "stackBelow": { "pattern": "^(0|[0-9]+(\\.[0-9]+)?(px|rem|em|vw|vh|%))$", "type": "string" } }, "required": [ "columns" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "columns", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" } ] } }, "properties": { "blocks": { "description": "Block(s) to append", "items": { "$ref": "#/definitions/__schema0" }, "minItems": 1, "type": "array" }, "postId": { "description": "The post ID", "type": "string" } }, "required": [ "postId", "blocks" ], "type": "object" }, "name": "append_post_block", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Archive a survey and remove it from active survey lists.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "surveyId": { "description": "Survey ID to archive", "type": "string" } }, "required": [ "surveyId" ], "type": "object" }, "name": "archive_survey", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Assign a staff member to a booking service. Pass users.id from list_staff.userId.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "serviceId": { "description": "Service ID", "type": "string" }, "userId": { "description": "users.id from list_staff.userId", "type": "string" } }, "required": [ "serviceId", "userId" ], "type": "object" }, "name": "assign_staff_to_service", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Attach a previously generated ai-media job's output as the post's featuredImage. Use when generate_post_cover timed out (job kept running) or when reusing the same generation across multiple posts. Verifies the job belongs to your company and succeeded. Does NOT charge credits — credits were charged at submit time.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "assetIndex": { "description": "Which asset to use when the job produced multiple outputs. Default 0.", "maximum": 20, "minimum": 0, "type": "integer" }, "jobId": { "description": "The ai-media job ID (from generate_image, generate_post_cover, or POST /v6/merchant/ai-media/generate)", "type": "string" }, "pollIfRunning": { "description": "When true, advance polling once if the job is still running. Default true.", "type": "boolean" }, "pollTimeoutMs": { "description": "When pollIfRunning is true, wait up to this long for terminal state. Default 30000.", "maximum": 120000, "minimum": 0, "type": "integer" }, "postId": { "description": "The post ID", "type": "string" } }, "required": [ "postId", "jobId" ], "type": "object" }, "name": "attach_post_cover_from_job", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Attach one or more tags to a member/account. Useful for segmenting members after filtering.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountIds": { "description": "Member/account IDs to tag (max 100)", "items": { "type": "string" }, "type": "array" }, "tagId": { "description": "Tag ID to attach", "type": "string" } }, "required": [ "accountIds", "tagId" ], "type": "object" }, "name": "attach_tags", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Cancel a booking and create a durable refund receipt. Uses the merchant refund setting unless refundMethod is provided.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bookingId": { "description": "The booking ID to cancel", "type": "string" }, "idempotencyKey": { "description": "Unique key for this cancellation attempt; reuse it only when retrying the same request", "maxLength": 200, "minLength": 8, "type": "string" }, "reason": { "description": "Cancellation reason", "type": "string" }, "refundMethod": { "description": "Refund cash manually or convert refundable cash to member credit", "enum": [ "manual", "account_credit" ], "type": "string" } }, "required": [ "bookingId", "idempotencyKey" ], "type": "object" }, "name": "cancel_booking", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "subscriptionId": { "description": "Subscription ID", "type": "string" } }, "required": [ "subscriptionId" ], "type": "object" }, "name": "cancel_subscription", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "delta": { "default": 1, "description": "Planned usage increment. Currently quota checks are single-resource preflights.", "maximum": 9007199254740991, "minimum": 1, "type": "integer" }, "moduleCode": { "description": "Module code to check, e.g. whatsapp or crm", "type": "string" }, "quotaCode": { "description": "Quota code to check, e.g. contacts or mcp_calls_per_minute", "type": "string" }, "toolName": { "description": "MCP tool name to preflight, e.g. create_account", "type": "string" } }, "type": "object" }, "name": "check_plan_operation", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Duplicate an existing record (product, tier, campaign, post, service package, promotion, gift offer). Creates a copy in DRAFT status with \"(Copy)\" appended to the name.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "entityId": { "description": "ID of the entity to clone", "type": "string" }, "entityType": { "description": "Type of entity to clone", "enum": [ "product", "tier", "campaign", "post", "service_package", "promotion", "gift_offer" ], "type": "string" }, "name": { "description": "Override the name of the cloned entity (defaults to \"Original Name (Copy)\")", "type": "string" } }, "required": [ "entityType", "entityId" ], "type": "object" }, "name": "clone", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Commit a previewed customer import. Pass the same rows and sessionId returned by preview_customer_import. Creates/updates accounts and applies points, stamps, and credit deltas.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "rows": { "items": { "properties": { "credit": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Target wallet stored value / 儲值 (HKD)" }, "customFields": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" }, { "type": "null" } ], "description": "Account custom fields keyed by fieldName" }, "dateOfBirth": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "expiryDate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Membership expiry YYYY-MM-DD" }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "gender": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "lifeStage": { "anyOf": [ { "enum": [ "lead", "active", "churned", "vip" ], "type": "string" }, { "type": "null" } ] }, "memberCode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Merchant member code (e.g. LIZLAB-00144)" }, "membershipTier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Tier name or ID" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Display name" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Internal notes" }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "points": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Target loyalty points (分數)" }, "referredBy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Referrer account UUID, member code, phone, or email" }, "rowNumber": { "description": "1-based row number from the source file (for error reporting)", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "source": { "anyOf": [ { "enum": [ "walk_in", "online", "pos", "whatsapp", "referral", "import", "api", "shopify", "woocommerce", "email" ], "type": "string" }, { "type": "null" } ] }, "stamps": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "tags": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated tag names" }, "type": { "anyOf": [ { "enum": [ "individual", "business", "household" ], "type": "string" }, { "type": "null" } ] } }, "required": [ "rowNumber" ], "type": "object" }, "maxItems": 2000, "minItems": 1, "type": "array" }, "sessionId": { "description": "sessionId from preview_customer_import", "minLength": 1, "type": "string" } }, "required": [ "sessionId", "rows" ], "type": "object" }, "name": "commit_customer_import", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Mark a booking as completed. Triggers commission calculation if configured.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bookingId": { "description": "The booking ID to complete", "type": "string" } }, "required": [ "bookingId" ], "type": "object" }, "name": "complete_booking", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Confirm a pending booking.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bookingId": { "description": "The booking ID to confirm", "type": "string" } }, "required": [ "bookingId" ], "type": "object" }, "name": "confirm_booking", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Convert an account: qualify its open lead (creating one if needed) and link exactly one pipeline deal. Also promotes lifeStage lead -> active. Safe to repeat — a second call lands on the same lead and deal. Works on accounts that are already active.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Lead account ID", "type": "string" }, "createDeal": { "description": "Deprecated and ignored — a convert always links a deal", "type": "boolean" }, "dealAmount": { "description": "Optional deal amount", "type": "number" }, "dealClosingDate": { "description": "Optional deal close date", "type": "string" }, "dealName": { "description": "Optional deal name", "type": "string" }, "dealStage": { "description": "Optional initial deal stage (\"lead\" is an alias of \"discovery\")", "enum": [ "discovery", "qualified", "proposal", "negotiation", "won", "lost", "lead", "new", "open" ], "type": "string" }, "lifeStage": { "description": "Lifecycle after convert (default active)", "enum": [ "active", "vip" ], "type": "string" } }, "required": [ "accountId" ], "type": "object" }, "name": "convert_lead", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Copy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "serviceId": { "description": "Booking service ID", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" }, "sourceTierId": { "description": "Membership tier to copy from", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" }, "targetTierId": { "description": "Membership tier to replace", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } }, "required": [ "serviceId", "sourceTierId", "targetTierId" ], "type": "object" }, "name": "copy_service_tier_pricing", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a CRM account/customer with a primary contact. Optionally enroll the account as a member; use enrol_membership later when the account already exists.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "address": { "description": "Postal address", "properties": { "city": { "type": "string" }, "country": { "type": "string" }, "line1": { "type": "string" }, "line2": { "type": "string" }, "postalCode": { "type": "string" }, "state": { "type": "string" } }, "type": "object" }, "email": { "description": "Email address", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "type": "string" }, "enrollMembership": { "description": "Whether to create an active membership immediately", "type": "boolean" }, "expiresAt": { "description": "Optional ISO expiry for the membership", "type": "string" }, "firstName": { "description": "First name for individual accounts", "type": "string" }, "lastName": { "description": "Last name for individual accounts", "type": "string" }, "lifeStage": { "description": "CRM life stage. Defaults to active.", "enum": [ "lead", "active", "churned", "vip" ], "type": "string" }, "name": { "description": "Account/customer display name", "minLength": 1, "type": "string" }, "notes": { "description": "Internal notes", "type": "string" }, "phone": { "description": "Phone number", "type": "string" }, "source": { "description": "Acquisition source. Defaults to api.", "enum": [ "walk_in", "online", "pos", "whatsapp", "referral", "import", "api", "shopify", "woocommerce", "email" ], "type": "string" }, "tierId": { "description": "Membership tier ID to enroll into. If omitted, the company default tier may apply.", "type": "string" }, "type": { "description": "Account type. Defaults to individual.", "enum": [ "individual", "business", "household" ], "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_account", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a new booking for a member. Use get_available_slots first to find valid times, then create the booking with the service, member, date, and time.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "The member/account ID", "type": "string" }, "bookingDate": { "description": "Date in YYYY-MM-DD format", "type": "string" }, "endTime": { "description": "End time in HH:MM format", "type": "string" }, "notes": { "description": "Booking notes", "type": "string" }, "resourceId": { "description": "Resource ID", "type": "string" }, "serviceId": { "description": "The service ID", "type": "string" }, "staffId": { "description": "Staff member ID", "type": "string" }, "startTime": { "description": "Start time in HH:MM format", "type": "string" } }, "required": [ "serviceId", "accountId", "bookingDate", "startTime", "endTime" ], "type": "object" }, "name": "create_booking", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a DRAFT WhatsApp or SMS broadcast campaign. The broadcast is NOT sent — admin must review and send it from the Broadcasts page.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "channel": { "description": "Channel (default whatsapp)", "enum": [ "whatsapp", "sms" ], "type": "string" }, "name": { "description": "Campaign name", "type": "string" }, "recipientFilter": { "anyOf": [ { "properties": { "recipientType": { "const": "all", "type": "string" }, "tagIds": { "items": { "type": "string" }, "type": "array" } }, "required": [ "recipientType" ], "type": "object" }, { "properties": { "recipientIds": { "items": { "type": "string" }, "minItems": 1, "type": "array" }, "recipientType": { "const": "individual", "type": "string" } }, "required": [ "recipientType", "recipientIds" ], "type": "object" }, { "properties": { "recipientType": { "const": "segment", "type": "string" }, "segmentId": { "minLength": 1, "type": "string" } }, "required": [ "recipientType", "segmentId" ], "type": "object" }, { "properties": { "recipientType": { "const": "tier", "type": "string" }, "tierId": { "minLength": 1, "type": "string" } }, "required": [ "recipientType", "tierId" ], "type": "object" }, { "properties": { "tagIds": { "items": { "type": "string" }, "minItems": 1, "type": "array" } }, "required": [ "tagIds" ], "type": "object" } ], "description": "Audience for this draft. Omit for all customers, use { tagIds: [\"...\"] } for the legacy tag filter, or provide recipientType with the required recipientIds, segmentId, or tierId." }, "scheduledAt": { "description": "ISO date to schedule the broadcast", "type": "string" }, "templateId": { "description": "Message template ID to use", "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_broadcast", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create an email, SMS, WhatsApp, or push campaign in DRAFT. audienceExclusions can omit specific account IDs and recipients of previous campaign IDs. For email channelConfig, use subject + htmlBody + optional plainTextBody. recipientSource=\"list\" is accepted as an alias for \"individual\".", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "audienceExclusions": { "description": "Optional exclusions: accountIds contains specific customer account IDs; campaignIds contains previous campaign IDs whose accepted recipients must be omitted. A recipient matching any rule is excluded.", "properties": { "accountIds": { "default": [], "items": { "minLength": 1, "type": "string" }, "maxItems": 1000, "type": "array" }, "campaignIds": { "default": [], "items": { "minLength": 1, "type": "string" }, "maxItems": 50, "type": "array" } }, "type": "object" }, "channel": { "description": "email | sms | whatsapp | push", "enum": [ "sms", "email", "whatsapp", "push" ], "type": "string" }, "channelConfig": { "additionalProperties": {}, "description": "Channel-specific config: subject + htmlBody for email, body for sms/whatsapp, templateId, etc. Legacy email html is normalized to htmlBody.", "propertyNames": { "type": "string" }, "type": "object" }, "name": { "description": "Campaign name (internal)", "type": "string" }, "recipientIds": { "description": "Required if recipientSource=\"individual\", \"list\", or \"csv\"; values are account IDs", "items": { "type": "string" }, "type": "array" }, "recipientSource": { "description": "Where to source recipients from. \"list\" is normalized to \"individual\".", "enum": [ "all", "segment", "individual", "csv", "list" ], "type": "string" }, "scheduledAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO datetime for scheduled send (status must be SCHEDULED)" }, "segmentId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Required if recipientSource=\"segment\"" }, "status": { "description": "Default DRAFT", "enum": [ "DRAFT", "SCHEDULED" ], "type": "string" } }, "required": [ "name", "channel" ], "type": "object" }, "name": "create_campaign", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a CMS post category (e.g. \"Equipment\", \"Injection — Botox\"). For sub-categories, use namespaced names — the table is flat.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "description": { "description": "Description", "type": "string" }, "name": { "description": "Category name", "type": "string" }, "slug": { "description": "Auto-generated from name if omitted.", "type": "string" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" } }, "required": [ "name" ], "type": "object" }, "name": "create_category", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a contact on an existing CRM account.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Owning account ID", "type": "string" }, "email": { "description": "Email", "type": "string" }, "isPrimary": { "description": "Mark as primary contact", "type": "boolean" }, "jobTitle": { "description": "Job title", "type": "string" }, "name": { "description": "Contact name", "type": "string" }, "phone": { "description": "Phone", "type": "string" } }, "required": [ "accountId", "name" ], "type": "object" }, "name": "create_contact", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a custom field definition for CRM entities. Use options for select or multiselect fields.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "entityType": { "description": "Entity type, e.g. account, contact, deal, booking", "enum": [ "account", "contact", "deal", "booking", "ticket", "product", "post" ], "type": "string" }, "fieldLabel": { "description": "Human-readable label, e.g. Preferred branch", "minLength": 1, "type": "string" }, "fieldName": { "description": "Stable machine name, e.g. preferred_branch", "minLength": 1, "type": "string" }, "fieldType": { "description": "Field type", "enum": [ "text", "number", "date", "select", "multiselect", "boolean", "url", "email", "phone" ], "type": "string" }, "isRequired": { "description": "Whether this field is required", "type": "boolean" }, "options": { "description": "Allowed values for select/multiselect fields", "items": { "type": "string" }, "type": "array" }, "sortOrder": { "description": "Display order", "type": "number" } }, "required": [ "entityType", "fieldName", "fieldLabel", "fieldType" ], "type": "object" }, "name": "create_custom_field", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a CRM sales pipeline deal, optionally linked to a customer account and contact.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Linked CRM account ID" }, "amount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Deal amount" }, "closingDate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Expected closing date" }, "contactId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Linked contact ID" }, "dealType": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Deal type/category" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Deal notes or description" }, "name": { "description": "Deal name", "minLength": 1, "type": "string" }, "ownerId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Owner user/team member ID" }, "probability": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Win probability, e.g. 25" }, "stage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Pipeline stage" } }, "required": [ "name" ], "type": "object" }, "name": "create_deal", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a draft reply suggestion that appears inline in the FavCRM Inbox composer. Use this for message.inbound events with replyPolicy=\"suggest\"; it does not send anything to the customer.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agentId": { "description": "AI colleague ID creating the suggestion", "minLength": 1, "type": "string" }, "body": { "description": "Draft reply text for the merchant to review", "maxLength": 8000, "minLength": 1, "type": "string" }, "conversationId": { "description": "Inbox conversation ID", "minLength": 1, "type": "string" }, "metadata": { "additionalProperties": {}, "description": "Optional metadata such as rationale, confidence, or source refs", "propertyNames": { "type": "string" }, "type": "object" }, "sourceMessageId": { "description": "Inbound message ID this draft responds to", "type": "string" }, "subject": { "description": "Optional email subject suggestion", "maxLength": 500, "type": "string" } }, "required": [ "conversationId", "agentId", "body" ], "type": "object" }, "name": "create_inbox_reply_suggestion", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Customer accountId (CRM account)", "type": "string" }, "currency": { "description": "ISO currency code (defaults to company default)", "type": "string" }, "dueDate": { "description": "Due date (ISO 8601 date)", "type": "string" }, "lineItems": { "description": "Line items to bill — totals are computed server-side", "items": { "properties": { "description": { "description": "Line item description", "type": "string" }, "quantity": { "description": "Quantity (default 1)", "type": "number" }, "unitPrice": { "description": "Unit price as decimal string, e.g. \"100.00\"", "type": "string" } }, "required": [ "description", "unitPrice" ], "type": "object" }, "type": "array" }, "notes": { "description": "Free-form notes shown on the invoice", "type": "string" } }, "required": [ "accountId" ], "type": "object" }, "name": "create_invoice", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Add a note to a member/account, booking, ticket, or invoice.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "body": { "description": "Note content", "type": "string" }, "entityId": { "description": "The entity ID", "type": "string" }, "entityType": { "description": "Type of entity", "enum": [ "account", "booking", "ticket", "invoice" ], "type": "string" }, "isPinned": { "description": "Pin this note to the top", "type": "boolean" } }, "required": [ "entityType", "entityId", "body" ], "type": "object" }, "name": "create_note", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "description": { "description": "Rule description", "type": "string" }, "name": { "description": "Rule name", "type": "string" }, "products": { "description": "Products to suggest with optional discounts", "items": { "properties": { "discountType": { "description": "Discount type", "enum": [ "percentage", "fixed_amount" ], "type": "string" }, "discountValue": { "description": "Discount value", "type": "string" }, "productId": { "description": "Product ID to suggest", "type": "number" } }, "required": [ "productId" ], "type": "object" }, "type": "array" }, "triggerConfig": { "additionalProperties": {}, "description": "Trigger-specific configuration", "propertyNames": { "type": "string" }, "type": "object" }, "triggerType": { "description": "When the offer triggers", "enum": [ "product_view", "cart_contains", "cart_threshold", "post_order", "category_view" ], "type": "string" }, "type": { "description": "Rule type: upsell, cross_sell, bundle, or post_purchase", "enum": [ "upsell", "cross_sell", "bundle", "post_purchase" ], "type": "string" } }, "required": [ "name", "type", "triggerType" ], "type": "object" }, "name": "create_offer_rule", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "acceptsOrders": { "description": "Whether outlet accepts online orders (default true)", "type": "boolean" }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Street address" }, "id": { "description": "Optional outlet UUID (for legacy migration; non-standard formats accepted)", "type": "string" }, "isActive": { "description": "Whether outlet is active (default true)", "type": "boolean" }, "latitude": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" } ] }, { "type": "null" } ], "description": "Latitude" }, "logoUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Logo URL" }, "longitude": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" } ] }, { "type": "null" } ], "description": "Longitude" }, "name": { "description": "Outlet name", "type": "string" }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Contact phone" }, "sortOrder": { "description": "Display sort order (default 0)", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "name" ], "type": "object" }, "name": "create_outlet", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a Stripe Checkout link for a new paid subscription, or a Stripe Billing Portal link for an existing Stripe subscription. Use only after the user explicitly asks to upgrade or fix billing.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "billingCycle": { "default": "monthly", "enum": [ "monthly", "yearly" ], "type": "string" }, "confirm": { "default": false, "description": "Required true to create a Stripe-hosted payment or billing link.", "type": "boolean" }, "planCode": { "description": "Target plan code, e.g. favcrm-lite. Either planId or planCode is required.", "type": "string" }, "planId": { "description": "Target plan ID. Use list_plan_options first if unknown.", "type": "string" }, "returnUrl": { "description": "Where Stripe should return after checkout/portal. Defaults to merchant billing settings.", "format": "uri", "type": "string" } }, "type": "object" }, "name": "create_plan_upgrade_link", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a new CMS post (blog_post, page, or any custom post type). The post type must already exist — use list_post_types to discover, create_post_type to add a new one. excerpt = plain-text summary only (auto-derived from blocks if omitted). Structured custom fields go in meta, keyed by the field schema defined with create_post_type_field.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "__schema0": { "oneOf": [ { "properties": { "data": { "properties": { "html": { "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "paragraph", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "anchor": { "type": "string" }, "level": { "anyOf": [ { "const": 1, "type": "number" }, { "const": 2, "type": "number" }, { "const": 3, "type": "number" }, { "const": 4, "type": "number" } ] }, "text": { "minLength": 1, "type": "string" } }, "required": [ "level", "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "heading", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "height": { "exclusiveMinimum": 0, "type": "number" }, "url": { "format": "uri", "type": "string" }, "width": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "url", "alt" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "image", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array" }, "ordered": { "type": "boolean" } }, "required": [ "ordered", "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "list", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "cite": { "type": "string" }, "text": { "minLength": 1, "type": "string" } }, "required": [ "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "quote", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "code": { "minLength": 1, "type": "string" }, "lang": { "type": "string" } }, "required": [ "lang", "code" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "code", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "additionalProperties": false, "properties": {}, "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "divider", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "size": { "enum": [ "sm", "md", "lg" ], "type": "string" } }, "required": [ "size" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "spacer", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "provider": { "enum": [ "youtube", "vimeo", "iframe" ], "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "provider", "url" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "embed", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "html": { "minLength": 1, "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "html", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "startSeconds": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" }, "videoId": { "pattern": "^[A-Za-z0-9_-]{11}$", "type": "string" } }, "required": [ "videoId" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "youtube", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "displayName": { "type": "string" }, "icon": { "enum": [ "pdf", "doc", "image", "video", "audio", "generic" ], "type": "string" }, "mimeType": { "minLength": 1, "type": "string" }, "originalName": { "minLength": 1, "type": "string" }, "sizeBytes": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "mimeType", "sizeBytes", "originalName" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "file", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "answer": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "question": { "minLength": 1, "type": "string" } }, "required": [ "id", "question", "answer" ], "type": "object" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "faq", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "body": { "minLength": 1, "type": "string" }, "title": { "type": "string" }, "tone": { "enum": [ "info", "success", "warning", "danger", "note" ], "type": "string" } }, "required": [ "tone", "body" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "callout", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "images": { "items": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, "type": "array" }, "layout": { "enum": [ "grid", "masonry", "carousel" ], "type": "string" } }, "required": [ "layout", "images" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "gallery", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "href": { "minLength": 1, "type": "string" }, "label": { "minLength": 1, "type": "string" }, "openInNewTab": { "type": "boolean" }, "style": { "enum": [ "primary", "secondary", "ghost" ], "type": "string" } }, "required": [ "label", "href" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "cta", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "body": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "title": { "minLength": 1, "type": "string" } }, "required": [ "id", "title", "body" ], "type": "object" }, "type": "array" }, "semantic": { "enum": [ "faq", "plain" ], "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "accordion", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "layout": { "enum": [ "card", "inline" ], "type": "string" }, "slug": { "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "product", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "align": { "enum": [ "start", "center", "stretch" ], "type": "string" }, "columns": { "items": { "properties": { "blocks": { "items": { "allOf": [ { "$ref": "#/definitions/__schema0" } ] }, "type": "array" }, "span": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "blocks" ], "type": "object" }, "maxItems": 4, "minItems": 2, "type": "array" }, "stackBelow": { "pattern": "^(0|[0-9]+(\\.[0-9]+)?(px|rem|em|vw|vh|%))$", "type": "string" } }, "required": [ "columns" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "columns", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" } ] } }, "properties": { "blocks": { "description": "Ordered array of content blocks. Each block has { id, version, type, data } where type is one of: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callout, gallery, cta, accordion, product, columns. Unknown types are rejected.", "items": { "$ref": "#/definitions/__schema0" }, "type": "array" }, "categoryIds": { "description": "Category IDs (post types with supportsCategories only)", "items": { "type": "string" }, "type": "array" }, "excerpt": { "description": "Plain-text summary only — never JSON. Auto-derived from the first paragraph/heading block if omitted and the post type supports excerpts.", "type": "string" }, "featuredImage": { "description": "Cover image URL", "type": "string" }, "meta": { "additionalProperties": {}, "description": "Structured custom field values, keyed by field key (see list_post_type_fields). Validated against the post type field schema. Use this for all machine-readable data — never put JSON in excerpt.", "propertyNames": { "type": "string" }, "type": "object" }, "parentId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Parent post ID for nested types (e.g. pages)." }, "publishedAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO timestamp; required when status=scheduled." }, "seoDescription": { "description": "SEO meta description", "type": "string" }, "seoTitle": { "description": "SEO title override", "type": "string" }, "slug": { "description": "URL slug. Auto-generated from title if omitted; collisions get -2, -3 suffix.", "type": "string" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" }, "status": { "description": "Status (default draft)", "enum": [ "draft", "scheduled", "published", "archived" ], "type": "string" }, "tagIds": { "description": "Tag IDs to attach to the post", "items": { "type": "string" }, "type": "array" }, "title": { "description": "Post title", "type": "string" }, "type": { "description": "Post type slug (e.g. blog_post, page, treatment). Must exist in post_types for this company.", "type": "string" }, "visibility": { "description": "Visibility (default public)", "enum": [ "public", "private", "members_only" ], "type": "string" } }, "required": [ "type", "title" ], "type": "object" }, "name": "create_post", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Define a new custom post type (e.g. \"treatment\", \"service\"). Required before creating posts of that type. After creating a post type, use create_post_type_field to define its structured field schema. Those fields are stored in meta on each post — do not use excerpt for structured data.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Icon name or URL" }, "label": { "description": "Singular UI label, e.g. \"Treatment\"", "type": "string" }, "labelPlural": { "description": "Plural UI label, e.g. \"Treatments\"", "type": "string" }, "slug": { "description": "Lowercase identifier, e.g. \"treatment\". Auto-derived from label if omitted.", "type": "string" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" }, "supportsBlocks": { "description": "Default true", "type": "boolean" }, "supportsCategories": { "description": "Default true", "type": "boolean" }, "supportsExcerpt": { "description": "Default true", "type": "boolean" }, "supportsFeaturedImage": { "description": "Default true", "type": "boolean" }, "supportsNesting": { "description": "Default false", "type": "boolean" } }, "required": [ "slug", "label", "labelPlural" ], "type": "object" }, "name": "create_post_type", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Add a custom field to a post type schema. The field key becomes the key in meta when creating/updating posts. Use fieldType=\"repeater\" with fields=[...] for repeatable structured rows. Use this instead of storing structured data in excerpt.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "fieldType": { "description": "Field type: text | textarea | richtext | number | boolean | date | datetime | select | multiselect | url | email | image | file | gallery | attachments | repeater", "enum": [ "text", "textarea", "richtext", "number", "boolean", "date", "datetime", "select", "multiselect", "url", "email", "image", "file", "gallery", "attachments", "repeater" ], "type": "string" }, "fields": { "description": "Required for fieldType=\"repeater\". Defines the child fields stored in each row object.", "items": { "properties": { "fieldType": { "description": "Child field type. Repeaters support scalar/select types plus singular upload fields: text, textarea, richtext, number, boolean, date, datetime, select, multiselect, url, email, image, file. Nested repeaters and array upload fields are not supported.", "enum": [ "text", "textarea", "richtext", "number", "boolean", "date", "datetime", "select", "multiselect", "url", "email", "image", "file", "gallery", "attachments", "repeater" ], "type": "string" }, "helpText": { "description": "Optional hint shown in the UI", "type": "string" }, "key": { "description": "snake_case key for this repeater child field. Auto-derived from label if omitted.", "type": "string" }, "label": { "description": "Human-readable child field label", "type": "string" }, "options": { "additionalProperties": {}, "description": "For select/multiselect child fields: { choices: [\"a\",\"b\"] }.", "propertyNames": { "type": "string" }, "type": "object" }, "required": { "description": "Whether this child field is required on every repeater row", "type": "boolean" }, "sortOrder": { "type": "number" } }, "required": [ "label", "fieldType" ], "type": "object" }, "type": "array" }, "helpText": { "description": "Optional hint shown in the UI", "type": "string" }, "key": { "description": "snake_case key used in meta. Auto-derived from label if omitted.", "type": "string" }, "label": { "description": "Human-readable field label, e.g. \"Tagline\"", "type": "string" }, "options": { "additionalProperties": {}, "description": "For select/multiselect: { choices: [{ label, value }] }. For URL fields that should accept merchant uploads, use { uploadable: true } so the UI stores the uploaded file URL instead of asking the merchant to paste a raw URL.", "propertyNames": { "type": "string" }, "type": "object" }, "postTypeId": { "description": "Post type ID (from list_post_types)", "type": "string" }, "required": { "description": "Whether the field is required on post creation (default false)", "type": "boolean" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" } }, "required": [ "postTypeId", "label", "fieldType" ], "type": "object" }, "name": "create_post_type_field", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a new shop product as DRAFT. Merchant can review and activate from the portal.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "categoryIds": { "description": "Category IDs (first is primary)", "items": { "type": "number" }, "type": "array" }, "description": { "description": "Product description", "type": "string" }, "discountPrice": { "description": "Discounted price", "type": "string" }, "memberPrice": { "description": "Members-only price", "type": "string" }, "name": { "description": "Product name", "type": "string" }, "price": { "description": "Price as decimal string (e.g. \"29.99\")", "type": "string" }, "productType": { "description": "Product type (default one_time)", "enum": [ "one_time", "recurring" ], "type": "string" }, "sku": { "description": "SKU code", "type": "string" } }, "required": [ "name", "price" ], "type": "object" }, "name": "create_product", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a product category. Use parentId to create subcategories under an existing category.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "description": { "description": "Category description", "type": "string" }, "name": { "description": "Category name", "type": "string" }, "onlineEnabled": { "description": "Show in online store (default true)", "type": "boolean" }, "parentId": { "description": "Parent category ID for subcategories", "type": "number" }, "sortOrder": { "description": "Display sort order", "type": "number" } }, "required": [ "name" ], "type": "object" }, "name": "create_product_category", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a promotion / discount code. type=percentage or fixed_amount; value is the discount as a string (\"10\" = 10% or 10 currency units). Codes are uppercased server-side.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bookingEnabled": { "description": "Allow on bookings", "type": "boolean" }, "code": { "description": "Coupon code customers enter at checkout (auto-uppercased)", "type": "string" }, "description": { "description": "Description", "type": "string" }, "endsAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO datetime — when the promo expires" }, "eventEnabled": { "description": "Allow on event registrations", "type": "boolean" }, "maximumDiscount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Cap on percentage discounts, decimal string" }, "minimumAmount": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Minimum order amount required, decimal string" }, "minimumQuantity": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Minimum item count required" }, "name": { "description": "Promotion name (internal)", "type": "string" }, "onlineEnabled": { "description": "Allow on online shop orders", "type": "boolean" }, "posEnabled": { "description": "Allow at POS", "type": "boolean" }, "startsAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ISO datetime — when the promo becomes valid" }, "status": { "description": "Default active", "enum": [ "active", "inactive", "expired" ], "type": "string" }, "type": { "description": "Default percentage", "enum": [ "percentage", "fixed_amount" ], "type": "string" }, "usageLimitPerCustomer": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Max uses per single customer" }, "usageLimitTotal": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Max total uses across all customers" }, "value": { "description": "Discount value as decimal string", "type": "string" } }, "required": [ "name", "code", "value" ], "type": "object" }, "name": "create_promotion", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "capacity": { "description": "How many concurrent bookings (default 1)", "type": "number" }, "description": { "description": "Description", "type": "string" }, "name": { "description": "Resource name (e.g. \"Treatment Room A\")", "type": "string" }, "status": { "description": "Default active", "enum": [ "active", "inactive" ], "type": "string" }, "type": { "description": "Free-form type label, e.g. \"room\", \"equipment\"", "type": "string" } }, "required": [ "name", "type" ], "type": "object" }, "name": "create_resource", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "criteria": { "description": "Dynamic segment criteria", "properties": { "conditions": { "description": "Filter conditions", "items": { "properties": { "days": { "description": "Days window for time-based conditions", "type": "number" }, "definitionId": { "description": "Custom field definition ID for custom-field segment conditions", "type": "string" }, "fieldName": { "description": "Custom field name for custom-field segment conditions", "type": "string" }, "fieldType": { "description": "Custom field type for custom-field segment conditions", "type": "string" }, "operator": { "description": "Comparison operator, e.g. GT, GTE, LT, LTE, EQ, NEQ, IN, NOT_IN, CONTAINS, BEFORE, AFTER, IS_EMPTY", "type": "string" }, "threshold": { "description": "Numeric threshold for numeric conditions", "type": "number" }, "type": { "description": "Condition type, e.g. TOTAL_SPENDINGS, DAYS_SINCE_JOINED, PASS_STATUS, CUSTOM_FIELD", "type": "string" }, "value": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ], "description": "Single value for text/date/selection/custom-field conditions" }, "values": { "description": "Multiple values for IN/NOT_IN conditions", "items": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "type": "array" } }, "required": [ "type", "operator" ], "type": "object" }, "type": "array" }, "operator": { "description": "How to combine conditions", "enum": [ "AND", "OR" ], "type": "string" } }, "required": [ "operator", "conditions" ], "type": "object" }, "description": { "description": "Segment description", "type": "string" }, "name": { "description": "Segment name", "type": "string" }, "segmentType": { "description": "Segment type (default DYNAMIC)", "enum": [ "STATIC", "DYNAMIC" ], "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_segment", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "allowedTierIds": { "description": "Required when visibility=members_only", "items": { "type": "string" }, "type": "array" }, "capacity": { "description": "How many participants per slot (default 1)", "type": "number" }, "categoryId": { "description": "Existing service category ID", "type": "string" }, "commissionCurrency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Commission currency (ISO code)" }, "commissionType": { "anyOf": [ { "enum": [ "fixed", "percentage" ], "type": "string" }, { "type": "null" } ], "description": "Commission type: \"fixed\" or \"percentage\"" }, "commissionValue": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Commission amount as decimal string" }, "cooldownMinutes": { "description": "Minimum gap before bookings can be cancelled (default 0)", "type": "number" }, "currency": { "description": "ISO currency code, default HKD", "type": "string" }, "description": { "description": "Description", "type": "string" }, "durationMinutes": { "description": "Duration of one booking in minutes", "type": "number" }, "name": { "description": "Service name", "type": "string" }, "price": { "description": "Decimal string, e.g. \"80.00\". Defaults to \"0\".", "type": "string" }, "requireLogin": { "description": "Default true — guests cannot book", "type": "boolean" }, "requiresConfirmation": { "description": "If true, bookings start as pending and need confirm_booking", "type": "boolean" }, "requiresResource": { "description": "Whether the service requires a resource (room/equipment)", "type": "boolean" }, "requiresStaff": { "description": "Whether the service requires staff assignment", "type": "boolean" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" }, "status": { "description": "Default active", "enum": [ "active", "inactive", "archived" ], "type": "string" }, "type": { "description": "Default one_on_one", "enum": [ "one_on_one", "group", "class" ], "type": "string" }, "visibility": { "description": "Visibility: public | members_only | hidden", "enum": [ "public", "members_only", "hidden" ], "type": "string" } }, "required": [ "name", "durationMinutes" ], "type": "object" }, "name": "create_service", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a service category (e.g. \"Treatments\", \"Classes\") to group bookable services.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "description": { "description": "Description", "type": "string" }, "name": { "description": "Category name", "type": "string" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" } }, "required": [ "name" ], "type": "object" }, "name": "create_service_category", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "applicableItems": { "description": "Items used when applicableType=SELECTED", "items": { "properties": { "itemId": { "type": "string" }, "itemType": { "enum": [ "booking_service", "event" ], "type": "string" } }, "required": [ "itemType", "itemId" ], "type": "object" }, "type": "array" }, "applicableType": { "description": "Default ALL", "enum": [ "ALL", "ALL_BOOKINGS", "ALL_EVENTS", "SELECTED" ], "type": "string" }, "description": { "description": "Description", "type": "string" }, "name": { "description": "Package name", "maxLength": 200, "minLength": 1, "type": "string" }, "price": { "description": "Package price", "minimum": 0, "type": "number" }, "sessionCount": { "description": "Number of included sessions", "maximum": 100, "minimum": 1, "type": "integer" }, "status": { "description": "Default ACTIVE", "enum": [ "ACTIVE", "INACTIVE" ], "type": "string" }, "validDays": { "description": "Validity window after purchase, in days", "maximum": 3650, "minimum": 1, "type": "integer" } }, "required": [ "name", "sessionCount", "price", "validDays" ], "type": "object" }, "name": "create_service_package", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a bookable schedule window for a service, including recurring weekly/daily availability.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "byWeekday": { "description": "Weekdays for weekly recurrence: 0=Mon, 1=Tue, ... 6=Sun", "items": { "maximum": 6, "minimum": 0, "type": "integer" }, "type": "array" }, "date": { "description": "Start date or one-off date (YYYY-MM-DD)", "type": "string" }, "endTime": { "description": "HH:MM (24h)", "type": "string" }, "maxCapacity": { "description": "Max bookings per generated slot", "type": "number" }, "notes": { "description": "Free-form notes", "type": "string" }, "recurrence": { "description": "Default none", "enum": [ "none", "daily", "weekly", "monthly" ], "type": "string" }, "recurrenceEndDate": { "description": "YYYY-MM-DD", "type": "string" }, "recurrenceInterval": { "description": "Default 1", "type": "number" }, "resourceId": { "description": "Optional resource ID to bind this schedule to a room/resource", "type": "string" }, "serviceId": { "description": "Service ID", "type": "string" }, "staffId": { "description": "Optional companyMembers.id to bind this schedule to staff", "type": "string" }, "startTime": { "description": "HH:MM (24h)", "type": "string" } }, "required": [ "serviceId", "date", "startTime", "endTime" ], "type": "object" }, "name": "create_service_schedule", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Customer accountId", "type": "string" }, "amount": { "description": "Override amount per cycle (otherwise derived from tier)", "type": "number" }, "autoRenew": { "const": false, "description": "Manual records cannot auto-renew", "type": "boolean" }, "billingCycle": { "description": "Billing cycle (default monthly)", "enum": [ "monthly", "quarterly", "yearly", "one_off" ], "type": "string" }, "currency": { "description": "ISO currency code (otherwise derived from tier or company default)", "type": "string" }, "currentPeriodEnd": { "description": "Period end (ISO 8601). Defaults to start + cycle.", "type": "string" }, "currentPeriodStart": { "description": "Period start (ISO 8601). Defaults to now.", "type": "string" }, "tierId": { "description": "Membership tier ID — if set, amount/currency default from the tier", "type": "string" } }, "required": [ "accountId" ], "type": "object" }, "name": "create_subscription", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "closeAt": { "description": "Optional ISO datetime when the survey closes", "type": "string" }, "description": { "description": "Optional survey description", "type": "string" }, "openAt": { "description": "Optional ISO datetime when the survey opens", "type": "string" }, "questionBlocks": { "description": "Ordered survey question blocks", "items": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "type": "array" }, "settings": { "additionalProperties": {}, "description": "Survey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage", "propertyNames": { "type": "string" }, "type": "object" }, "slug": { "description": "Optional URL slug; generated from title when omitted", "type": "string" }, "status": { "description": "Initial status", "enum": [ "draft", "published", "closed", "archived" ], "type": "string" }, "title": { "description": "Survey title", "minLength": 1, "type": "string" }, "visibility": { "description": "Who can access the survey", "enum": [ "public", "members_only", "token_only", "private" ], "type": "string" } }, "required": [ "title", "questionBlocks" ], "type": "object" }, "name": "create_survey", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a token-auth survey invitation for a specific member/account or contact.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "CRM account ID to invite", "type": "string" }, "channel": { "description": "Intended channel, e.g. email, sms, whatsapp, link", "type": "string" }, "contactId": { "description": "Contact ID to invite", "type": "string" }, "expiresAt": { "description": "Optional invitation expiry ISO datetime", "type": "string" }, "metadata": { "additionalProperties": {}, "description": "Optional invitation metadata", "propertyNames": { "type": "string" }, "type": "object" }, "recipientEmail": { "description": "Recipient email for link tracking", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "type": "string" }, "recipientName": { "description": "Recipient display name for link tracking", "type": "string" }, "recipientPhone": { "description": "Recipient phone for link tracking", "type": "string" }, "surveyId": { "description": "Survey ID", "type": "string" } }, "required": [ "surveyId" ], "type": "object" }, "name": "create_survey_invitation", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a CRM tag for customer segmentation and organization.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "color": { "description": "Optional display color, e.g. #2563eb", "type": "string" }, "name": { "description": "Tag name", "minLength": 1, "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "create_tag", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a task. Optionally link to a CRM account or assign to a team member.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Linked CRM account", "type": "string" }, "assigneeId": { "description": "company_members.id", "type": "string" }, "description": { "description": "Description", "type": "string" }, "dueDate": { "description": "ISO date (YYYY-MM-DD)", "type": "string" }, "priority": { "description": "Priority", "enum": [ "low", "medium", "high", "urgent" ], "type": "string" }, "status": { "description": "Status filter", "enum": [ "todo", "in_progress", "blocked", "done" ], "type": "string" }, "title": { "description": "Task title", "type": "string" } }, "required": [ "title" ], "type": "object" }, "name": "create_task", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Invite a team member to this company and return a one-time MCP accept token. The invited user must verify an email code through accept_team_invite_request and accept_team_invite_verify before membership and API key issuance.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "email": { "description": "Invitee email address", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "type": "string" }, "expiresInHours": { "description": "Invite lifetime in hours. Defaults to 72, max 336.", "maximum": 336, "minimum": 1, "type": "integer" }, "modules": { "description": "Optional legacy module list to attach to the company member", "items": { "type": "string" }, "type": "array" }, "name": { "description": "Optional display name for a new user", "maxLength": 120, "minLength": 1, "type": "string" }, "permissions": { "description": "Optional structured module permissions to attach to the company member", "items": { "properties": { "actions": { "items": { "type": "string" }, "minItems": 1, "type": "array" }, "module": { "type": "string" }, "resource": { "type": "string" } }, "required": [ "actions" ], "type": "object" }, "type": "array" }, "role": { "default": "staff", "description": "Team member role to grant on acceptance", "enum": [ "manager", "staff" ], "type": "string" } }, "required": [ "email" ], "type": "object" }, "name": "create_team_member_invite", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create and submit a WhatsApp message template to Meta for approval. Text templates only (header text, body with {{1}} variables, footer) — add buttons in the app. The template is NOT usable until Meta approves it (check with list_templates). Submitting consumes the store’s Meta template allowance.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "category": { "description": "UTILITY = transactional (order/shipping), MARKETING = promos, AUTHENTICATION = codes.", "enum": [ "MARKETING", "UTILITY", "AUTHENTICATION" ], "type": "string" }, "footer": { "description": "Optional small footer text.", "type": "string" }, "headerText": { "description": "Optional short bold header above the body.", "type": "string" }, "language": { "description": "Language code, default en_US.", "type": "string" }, "message": { "description": "Body text. Use {{1}}, {{2}} for personalised values.", "minLength": 1, "type": "string" }, "name": { "description": "Friendly template name (a Meta-safe id is derived from it).", "minLength": 1, "type": "string" }, "variableSamples": { "additionalProperties": { "type": "string" }, "description": "Example values per variable number, e.g. {\"1\":\"Sara\"} — Meta reviews with these.", "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "name", "category", "message" ], "type": "object" }, "name": "create_template", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a support ticket for a member issue.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Member/account ID this ticket is about", "type": "string" }, "category": { "description": "Ticket category", "enum": [ "bug", "feature_request", "account", "billing", "general", "other" ], "type": "string" }, "contactEmail": { "description": "Contact email if no account ID", "type": "string" }, "contactName": { "description": "Contact name if no account ID", "type": "string" }, "contactPhone": { "description": "Contact phone if no account ID", "type": "string" }, "description": { "description": "Detailed description of the issue", "type": "string" }, "priority": { "description": "Ticket priority", "enum": [ "critical", "high", "medium", "low" ], "type": "string" }, "source": { "description": "Where the ticket originated", "enum": [ "portal", "email", "phone", "walk_in", "api", "mobile_app" ], "type": "string" }, "subject": { "description": "Ticket subject/title", "type": "string" } }, "required": [ "subject" ], "type": "object" }, "name": "create_ticket", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Add a variation (size, color, etc.) to an existing product.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "discountPrice": { "description": "Discounted price", "type": "string" }, "memberPrice": { "description": "Members-only price", "type": "string" }, "name": { "description": "Variation name", "type": "string" }, "price": { "description": "Price as decimal string (e.g. \"29.99\")", "type": "string" }, "productId": { "description": "The product ID", "type": "number" }, "selectedOptions": { "additionalProperties": { "type": "string" }, "description": "Option selections e.g. {\"Size\": \"Large\"}", "propertyNames": { "type": "string" }, "type": "object" }, "sku": { "description": "Variation SKU", "type": "string" }, "stockQuantity": { "description": "Stock quantity", "type": "number" }, "stockStatus": { "description": "Stock status", "enum": [ "in_stock", "out_of_stock", "low_stock" ], "type": "string" } }, "required": [ "productId", "price" ], "type": "object" }, "name": "create_variation", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a short-lived browser link for WhatsApp Business Embedded Signup. The user must open the link because Meta requires a browser popup to authorize and choose the WABA/phone number.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "onboardingMode": { "default": "cloud_api", "description": "Use cloud_api for a new WhatsApp Cloud API connection, or coexistence when connecting a WhatsApp Business App number.", "enum": [ "cloud_api", "coexistence" ], "type": "string" }, "ttlMinutes": { "description": "Connect link lifetime in minutes. Defaults to 30.", "maximum": 1440, "minimum": 5, "type": "integer" } }, "type": "object" }, "name": "create_whatsapp_connect_link", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "The account ID to soft-delete", "type": "string" } }, "required": [ "accountId" ], "type": "object" }, "name": "delete_account", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "campaignId": { "description": "Campaign ID", "type": "string" } }, "required": [ "campaignId" ], "type": "object" }, "name": "delete_campaign", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "categoryId": { "description": "Category ID", "type": "string" } }, "required": [ "categoryId" ], "type": "object" }, "name": "delete_category", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "contactId": { "description": "The contact ID to delete", "type": "string" } }, "required": [ "contactId" ], "type": "object" }, "name": "delete_contact", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a custom field definition and its stored values.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "definitionId": { "description": "Custom field definition ID", "type": "string" } }, "required": [ "definitionId" ], "type": "object" }, "name": "delete_custom_field", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Soft-delete a CRM deal from the sales pipeline.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "dealId": { "description": "The deal ID to delete", "type": "string" } }, "required": [ "dealId" ], "type": "object" }, "name": "delete_deal", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "invoiceId": { "description": "Invoice ID to delete", "type": "string" } }, "required": [ "invoiceId" ], "type": "object" }, "name": "delete_invoice", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Soft-delete a knowledge document. The agent loses access immediately, but the document can be restored with restore_knowledge_document.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "documentId": { "description": "Knowledge document ID", "type": "string" } }, "required": [ "documentId" ], "type": "object" }, "name": "delete_knowledge_document", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "postId": { "description": "The post ID", "type": "string" } }, "required": [ "postId" ], "type": "object" }, "name": "delete_post", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "postTypeId": { "description": "Post type ID", "type": "string" } }, "required": [ "postTypeId" ], "type": "object" }, "name": "delete_post_type", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Remove a field from a post type schema. Blocked when posts of this type still have data in the field unless force=true is passed (orphans the data).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "fieldId": { "description": "Field ID", "type": "string" }, "force": { "description": "Delete even if posts have data in this field. Existing meta values become orphaned.", "type": "boolean" }, "postTypeId": { "description": "Post type ID", "type": "string" } }, "required": [ "postTypeId", "fieldId" ], "type": "object" }, "name": "delete_post_type_field", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a promotion. Past usage records are preserved.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "promotionId": { "description": "Promotion ID", "type": "string" } }, "required": [ "promotionId" ], "type": "object" }, "name": "delete_promotion", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a customer segment.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "segmentId": { "description": "The segment ID to delete", "type": "string" } }, "required": [ "segmentId" ], "type": "object" }, "name": "delete_segment", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a service package by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "packageId": { "description": "Service package ID to delete", "type": "string" } }, "required": [ "packageId" ], "type": "object" }, "name": "delete_service_package", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Delete a CRM tag and remove it from all tagged entities.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "tagId": { "description": "The tag ID to delete", "type": "string" } }, "required": [ "tagId" ], "type": "object" }, "name": "delete_tag", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Soft-delete a CRM task.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "taskId": { "description": "The task ID to delete", "type": "string" } }, "required": [ "taskId" ], "type": "object" }, "name": "delete_task", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Detach one tag from one or more member/account records.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountIds": { "description": "Member/account IDs to untag (max 100)", "items": { "type": "string" }, "type": "array" }, "tagId": { "description": "Tag ID to detach", "type": "string" } }, "required": [ "accountIds", "tagId" ], "type": "object" }, "name": "detach_tags", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Credit loyalty points or stamps to a member. Use field=\"points\" for points, \"stamps\" for stamps. Server records a transaction with the reason as audit context.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "The member/account ID", "type": "string" }, "amount": { "description": "Positive integer amount to credit", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "field": { "description": "Which loyalty unit to credit", "enum": [ "points", "stamps" ], "type": "string" }, "reason": { "description": "Audit-trail reason (e.g. \"Booking completed\", \"Manual adjustment\")", "type": "string" } }, "required": [ "accountId", "field", "amount" ], "type": "object" }, "name": "earn_loyalty_points", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Enrol a member into a membership tier. Free tiers enrol immediately; paid tiers return PAYMENT_REQUIRED unless skipPriceCheck is set. Use list_tiers first to find the target tier.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "The member/account ID to enrol", "type": "string" }, "expiresAt": { "description": "Optional ISO date to override the tier-computed expiry.", "type": "string" }, "tierId": { "description": "The membership tier ID. Omit to enrol on the default no-tier membership.", "type": "string" } }, "required": [ "accountId" ], "type": "object" }, "name": "enrol_membership", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Execute an available FavCRM tool by name after discovering it with search_tools. Target tool availability, input schema, module gates, and audit logging are still enforced.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "arguments": { "additionalProperties": {}, "description": "Arguments object for the target tool. Must match the target input schema.", "propertyNames": { "type": "string" }, "type": "object" }, "toolName": { "description": "Exact target tool name returned by search_tools", "minLength": 1, "type": "string" } }, "required": [ "toolName" ], "type": "object" }, "name": "execute_tool", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Find or create a Workroom DM thread between a merchant user and an AI colleague. Use this when an inbound event deserves owner attention but no threadId was provided. This only prepares an internal Workroom channel.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agentId": { "description": "AI colleague ID for the Workroom DM", "type": "string" }, "title": { "description": "Optional title if a new thread is created", "maxLength": 120, "type": "string" }, "userId": { "description": "Merchant user ID to notify. Defaults to the current MCP user when omitted.", "type": "string" } }, "required": [ "agentId" ], "type": "object" }, "name": "find_or_create_workroom_thread", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Generate an AI image via kie.ai and return its public R2 URL. Use to mint reusable URLs for content blocks (image, gallery), product photos, or any field that takes an image URL — does NOT attach to a post by itself. Costs credits (see list_image_models). On poll timeout the job continues running; pass `jobId` from the response to merchant ai-media APIs to retrieve it later.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "aspectRatio": { "description": "Output aspect ratio (e.g. 16:9, 1:1)", "maxLength": 20, "type": "string" }, "modelCode": { "description": "Image model code from list_image_models", "type": "string" }, "negativePrompt": { "description": "Things to exclude from generation", "maxLength": 2000, "type": "string" }, "pollIntervalMs": { "description": "Default 3000.", "maximum": 15000, "minimum": 1000, "type": "integer" }, "pollTimeoutMs": { "description": "Default 60000.", "maximum": 120000, "minimum": 5000, "type": "integer" }, "prompt": { "description": "Generation prompt", "maxLength": 4000, "minLength": 1, "type": "string" }, "seed": { "description": "Random seed for reproducible output", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "prompt", "modelCode" ], "type": "object" }, "name": "generate_image", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Generate an AI image and attach it as a post's featuredImage. Submits a kie.ai job, polls until complete, copies the result into the canonical post-asset R2 folder, and writes the public URL onto the post. Costs credits (see list_image_models). On poll timeout, the job continues — call attach_post_cover_from_job(postId, jobId) once it finishes to attach without paying again.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "aspectRatio": { "description": "Aspect ratio passed to the model, e.g. \"16:9\", \"1:1\"", "maxLength": 20, "type": "string" }, "modelCode": { "description": "Image model code from list_image_models (e.g. nano-banana-2)", "type": "string" }, "negativePrompt": { "description": "Things to exclude from generation", "maxLength": 2000, "type": "string" }, "pollIntervalMs": { "description": "Default 3000.", "maximum": 15000, "minimum": 1000, "type": "integer" }, "pollTimeoutMs": { "description": "Default 60000.", "maximum": 120000, "minimum": 5000, "type": "integer" }, "postId": { "description": "The post ID", "type": "string" }, "prompt": { "description": "Image generation prompt", "maxLength": 4000, "minLength": 1, "type": "string" }, "seed": { "description": "Random seed for reproducible output", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "postId", "prompt", "modelCode" ], "type": "object" }, "name": "generate_post_cover", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Read the text/Markdown content of a file attached to a Workroom thread or sent by a customer (PDF, image, or document). Extracts on first read and caches the result. Returns status \"ready\" with markdown, or \"skipped\"/\"failed\"/\"not_found\" with a reason. Use when a message references an attachment you need to read.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "attachmentId": { "description": "The attachment ID from the message attachments list", "type": "string" } }, "required": [ "attachmentId" ], "type": "object" }, "name": "get_attachment_text", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Fetch a single audit log entry by ID, including before/after snapshots when available.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "auditLogId": { "description": "Audit log ID", "type": "string" } }, "required": [ "auditLogId" ], "type": "object" }, "name": "get_audit_log", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Find available booking slots for a service on a specific date.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "date": { "description": "ISO date to check (YYYY-MM-DD)", "type": "string" }, "resourceId": { "description": "Optional: filter by specific resource", "type": "string" }, "serviceId": { "description": "The service to check availability for", "type": "string" }, "staffId": { "description": "Optional: filter by specific staff member", "type": "string" } }, "required": [ "serviceId", "date" ], "type": "object" }, "name": "get_available_slots", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get full booking details including line items, status history, and participants.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bookingId": { "description": "The booking ID", "type": "string" } }, "required": [ "bookingId" ], "type": "object" }, "name": "get_booking_detail", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_booking_settings", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get booking counts: today, this week, this month, and breakdown by status.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_booking_stats", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get a campaign by ID, including its recipient source, audience exclusions, channel configuration, and delivery stats.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "campaignId": { "description": "Campaign ID", "type": "string" } }, "required": [ "campaignId" ], "type": "object" }, "name": "get_campaign", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Fetch a single contact by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "contactId": { "description": "The contact ID", "type": "string" } }, "required": [ "contactId" ], "type": "object" }, "name": "get_contact", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "conversationId": { "description": "The conversation ID", "type": "string" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search within messages", "type": "string" } }, "required": [ "conversationId" ], "type": "object" }, "name": "get_conversation_messages", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get a custom field definition by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "definitionId": { "description": "Custom field definition ID", "type": "string" } }, "required": [ "definitionId" ], "type": "object" }, "name": "get_custom_field", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get custom field values for a CRM entity such as an account, contact, deal, or booking.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "entityId": { "description": "Entity ID", "type": "string" }, "entityType": { "description": "Entity type", "enum": [ "account", "contact", "deal", "booking", "ticket", "product", "post" ], "type": "string" } }, "required": [ "entityType", "entityId" ], "type": "object" }, "name": "get_custom_field_values", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_dashboard_stats", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get detailed CRM deal information by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "dealId": { "description": "The deal ID", "type": "string" } }, "required": [ "dealId" ], "type": "object" }, "name": "get_deal", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Resolve pending, confirmed, and paid event registrations into unique CRM account IDs for campaign exclusions. Pass accountIds to audienceExclusions only when ready=true; cancelled registrations are omitted and unmatched guests make the result not ready.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "eventId": { "description": "Event ID", "type": "string" } }, "required": [ "eventId" ], "type": "object" }, "name": "get_event_campaign_exclusions", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Fetch a single invoice with line items, payment history, and customer detail.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "invoiceId": { "description": "Invoice ID", "type": "string" } }, "required": [ "invoiceId" ], "type": "object" }, "name": "get_invoice", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_invoice_stats", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Fetch a single knowledge document with metadata + extraction/review status. Reviewed content is served via GET /v6/merchant/ai/knowledge/{id}/content; raw/extracted variants are for audit.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "documentId": { "description": "Knowledge document ID", "type": "string" } }, "required": [ "documentId" ], "type": "object" }, "name": "get_knowledge_document", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "The member/account ID", "type": "string" } }, "required": [ "accountId" ], "type": "object" }, "name": "get_loyalty_balance", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get detailed profile for a specific member/account by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "The account ID", "type": "string" } }, "required": [ "accountId" ], "type": "object" }, "name": "get_member_profile", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get a specific membership tier by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "tierId": { "description": "The tier ID", "type": "string" } }, "required": [ "tierId" ], "type": "object" }, "name": "get_membership_tier", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get offer rule detail including associated products and discounts.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "ruleId": { "description": "The offer rule ID", "type": "string" } }, "required": [ "ruleId" ], "type": "object" }, "name": "get_offer_rule", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get full order detail including line items.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "orderId": { "description": "The order UUID", "type": "string" } }, "required": [ "orderId" ], "type": "object" }, "name": "get_order", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_plan_status", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get detailed CMS post including content blocks, categories, and tags.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "postId": { "description": "The post ID", "type": "string" } }, "required": [ "postId" ], "type": "object" }, "name": "get_post", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get full product detail including images, options, and variations.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "productId": { "description": "The product ID", "type": "number" } }, "required": [ "productId" ], "type": "object" }, "name": "get_product", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get details of a specific promotion/coupon code.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "promotionId": { "description": "The promotion ID", "type": "string" } }, "required": [ "promotionId" ], "type": "object" }, "name": "get_promotion", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get customer segment details including type, criteria, and live member count.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "segmentId": { "description": "The segment ID", "type": "string" } }, "required": [ "segmentId" ], "type": "object" }, "name": "get_segment", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get the members that belong to a specific segment.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "segmentId": { "description": "The segment ID", "type": "string" } }, "required": [ "segmentId" ], "type": "object" }, "name": "get_segment_members", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get full service details including addons, staff, resources, and tier pricing.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "serviceId": { "description": "The service ID", "type": "string" } }, "required": [ "serviceId" ], "type": "object" }, "name": "get_service_detail", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get service package detail including applicability and selected booking service/event items.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "packageId": { "description": "Service package ID", "type": "string" } }, "required": [ "packageId" ], "type": "object" }, "name": "get_service_package", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Read every membership-tier pricing configuration for one booking service.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "serviceId": { "description": "Booking service ID", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } }, "required": [ "serviceId" ], "type": "object" }, "name": "get_service_tier_pricing", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Fetch a single subscription with customer, tier, billing cycle, and renewal info.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "subscriptionId": { "description": "Subscription ID", "type": "string" } }, "required": [ "subscriptionId" ], "type": "object" }, "name": "get_subscription", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get survey detail, including blocks, publishing status, visibility, settings, and response count.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "surveyId": { "description": "Survey ID", "type": "string" } }, "required": [ "surveyId" ], "type": "object" }, "name": "get_survey", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List responses for a survey.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max responses (default 50)", "type": "number" }, "surveyId": { "description": "Survey ID", "type": "string" } }, "required": [ "surveyId" ], "type": "object" }, "name": "get_survey_responses", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get response and invitation metrics for a survey overview dashboard.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "surveyId": { "description": "Survey ID", "type": "string" } }, "required": [ "surveyId" ], "type": "object" }, "name": "get_survey_stats", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get detailed task information by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "taskId": { "description": "The task ID", "type": "string" } }, "required": [ "taskId" ], "type": "object" }, "name": "get_task", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Get ticket counts grouped by status.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_ticket_stats", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "get_whatsapp_connection_status", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "expiresAt": { "description": "Optional ISO date when the reward expires", "type": "string" }, "giftOfferId": { "description": "The gift offer/reward scheme ID to issue", "type": "string" }, "memberIds": { "description": "Member/account IDs to receive the reward (max 50)", "items": { "type": "string" }, "type": "array" } }, "required": [ "giftOfferId", "memberIds" ], "type": "object" }, "name": "issue_rewards", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Link a room/resource to a booking service.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "resourceId": { "description": "Resource ID", "type": "string" }, "serviceId": { "description": "Service ID", "type": "string" } }, "required": [ "serviceId", "resourceId" ], "type": "object" }, "name": "link_resource_to_service", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "action": { "description": "Exact tool/action name, e.g. delete_campaign", "type": "string" }, "createdAfter": { "description": "ISO timestamp lower bound", "type": "string" }, "createdBefore": { "description": "ISO timestamp upper bound", "type": "string" }, "destructive": { "description": "Whether the audited tool was destructive", "type": "boolean" }, "limit": { "default": 50, "description": "Maximum rows to return", "maximum": 200, "minimum": 1, "type": "integer" }, "outcome": { "description": "Execution outcome", "enum": [ "success", "failed", "blocked" ], "type": "string" }, "resource": { "description": "Resource name, e.g. campaigns", "type": "string" }, "resourceId": { "description": "Resource ID", "type": "string" }, "source": { "description": "Audit source, e.g. mcp, ai_agent, payment_webhook, merchant_api", "enum": [ "mcp", "ai_agent", "merchant_api", "payment_webhook", "manual_refresh", "qfpay_reconciliation", "hold_expiry_sweeper" ], "type": "string" }, "userId": { "description": "Actor user ID", "type": "string" } }, "type": "object" }, "name": "list_audit_logs", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List bookings with filters for date range, status, service, staff, or member.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Filter by member/account ID", "type": "string" }, "dateFrom": { "description": "ISO date — bookings from this date", "type": "string" }, "dateTo": { "description": "ISO date — bookings up to this date", "type": "string" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "serviceId": { "description": "Filter by service ID", "type": "string" }, "staffId": { "description": "Filter by staff member ID", "type": "string" }, "status": { "description": "Filter by booking status", "enum": [ "draft", "held", "pending", "confirmed", "cancelled", "completed", "no_show" ], "type": "string" } }, "type": "object" }, "name": "list_bookings", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List marketing campaigns (email, SMS, WhatsApp, or push) with delivery stats. Use the returned IDs when excluding recipients of previous campaigns.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "channel": { "description": "Filter by channel", "enum": [ "sms", "email", "whatsapp", "push" ], "type": "string" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "order": { "description": "Sort order", "enum": [ "asc", "desc" ], "type": "string" }, "search": { "description": "Search by campaign name", "type": "string" }, "sort": { "description": "Sort column", "type": "string" } }, "type": "object" }, "name": "list_campaigns", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List CMS post categories.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_categories", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List contacts (people linked to CRM accounts), optionally filtered by account or search.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Filter by account", "type": "string" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Match name, email, or phone", "type": "string" } }, "type": "object" }, "name": "list_contacts", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List messaging conversations across WhatsApp, Messenger, Instagram, Threads, SMS, email, and other enabled channels. Threads items are public conversations. Shows unread counts and last message time.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "channel": { "description": "Filter by channel", "enum": [ "whatsapp", "sms", "email", "messenger", "instagram", "threads", "web_form" ], "type": "string" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search by contact name, phone, or email", "type": "string" }, "status": { "description": "Filter by conversation status", "enum": [ "active", "archived", "closed" ], "type": "string" } }, "type": "object" }, "name": "list_conversations", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List custom field definitions for CRM entities such as account, contact, deal, or booking.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "entityType": { "description": "Entity type the custom fields belong to", "enum": [ "account", "contact", "deal", "booking", "ticket", "product", "post" ], "type": "string" } }, "required": [ "entityType" ], "type": "object" }, "name": "list_custom_fields", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List CRM deals (sales pipeline) with optional filters.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Filter by account", "type": "string" }, "dealType": { "description": "Filter by deal type", "type": "string" }, "limit": { "description": "Items per page (default 20)", "type": "number" }, "page": { "description": "Page number (default 1)", "type": "number" }, "search": { "description": "Search by name or description", "type": "string" }, "stage": { "description": "Filter by stage", "type": "string" } }, "type": "object" }, "name": "list_deals", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List registrations for an event in the active company, including CRM account IDs for campaign exclusions.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "eventId": { "description": "Event ID", "type": "string" }, "limit": { "description": "Max results (default 50, maximum 100)", "maximum": 100, "minimum": 1, "type": "integer" }, "offset": { "description": "Number of matching registrations to skip (default 0)", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "statuses": { "description": "Registration statuses to include. Omit to include all statuses.", "items": { "enum": [ "pending", "confirmed", "paid", "cancelled" ], "type": "string" }, "maxItems": 4, "minItems": 1, "type": "array" } }, "required": [ "eventId" ], "type": "object" }, "name": "list_event_registrations", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a `modelCode` for `generate_post_cover`.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_image_models", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List invoices with optional filters. Use status \"OVERDUE\" to find unpaid invoices past due date.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "order": { "description": "Sort order", "enum": [ "asc", "desc" ], "type": "string" }, "search": { "description": "Search by invoice number, account name, email, or phone", "type": "string" }, "sort": { "description": "Sort column", "type": "string" }, "status": { "description": "Filter by invoice status", "enum": [ "DRAFT", "SENT", "PARTIALLY_PAID", "PAID", "OVERDUE", "VOID", "CANCELLED" ], "type": "string" } }, "type": "object" }, "name": "list_invoices", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List merchant knowledge base documents (uploads + scraped URLs). Use reviewStatus/syncable to see what is ready for agent retrieval. Pass `updatedAfter` for delta sync. Reviewed content is fetched via GET /v6/merchant/ai/knowledge/{id}/content; source audit text is available with ?variant=extracted.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 100)", "type": "number" }, "updatedAfter": { "description": "ISO timestamp — only return docs updated after this. Use for delta sync.", "type": "string" } }, "type": "object" }, "name": "list_knowledge_documents", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List all companies/organisations the current user has access to. Use this to see available orgs before switching.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_my_companies", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List notes attached to a member/account, booking, or ticket.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "entityId": { "description": "The entity ID", "type": "string" }, "entityType": { "description": "Type of entity the notes are on", "enum": [ "account", "booking", "ticket", "invoice" ], "type": "string" }, "limit": { "description": "Max results (default 10)", "type": "number" } }, "required": [ "entityType", "entityId" ], "type": "object" }, "name": "list_notes", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List notification delivery logs for the current company. Recipients are masked by default for incident-response safety.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "channel": { "description": "Notification channel filter", "enum": [ "email", "sms", "whatsapp", "push" ], "type": "string" }, "dateFrom": { "description": "ISO timestamp lower bound", "type": "string" }, "dateTo": { "description": "ISO timestamp upper bound", "type": "string" }, "entityId": { "description": "Entity ID filter", "type": "string" }, "eventType": { "description": "Event type filter", "enum": [ "account_created", "account_updated", "booking_created", "booking_confirmed", "booking_checked_in", "booking_cancelled", "booking_completed", "booking_reminder", "order_placed", "order_completed", "order_cancelled", "order_refunded", "payment_received", "payment_failed", "payment_failed_followup", "membership_enrolled", "membership_expired", "membership_expired_followup", "tier_changed", "deal_stage_changed", "deal_won", "deal_lost", "customer_ownership_review_required", "customer_ownership_review_resolved", "event_registered", "event_cancelled", "event_updated", "event_checkout_abandoned", "event_session_reminder", "tutor_course_enrollment_confirmed", "tutor_course_payment_pending", "tutor_course_leave_requested", "tutor_course_leave_approved", "tutor_course_leave_declined", "tutor_course_class_switch_requested", "tutor_course_class_switch_approved", "tutor_course_class_switch_declined", "staff_agenda_digest", "invoice_created", "invoice_sent", "invoice_paid", "invoice_reminder", "invoice_overdue", "invoice_voided", "invoice_installment_reminder", "invoice_installment_overdue", "invoice_due_in_n_days", "subscription_created", "subscription_activated", "subscription_paused", "subscription_cancellation_scheduled", "subscription_cancelled", "subscription_expired", "subscription_renewed", "subscription_payment_failed", "subscription_renewal_reminder", "campaign_sent", "campaign_failed", "promotion_activated", "promotion_expired", "coupon_redeemed", "gift_offer_claimed", "gift_offer_redeemed", "gift_offer_expired", "service_package_purchased", "service_package_redeemed", "service_package_expired", "service_package_expiring_soon", "service_package_low_quota", "service_package_expired_followup", "reward_earned", "reward_redeemed", "reward_expired", "reward_redemption_expiring_soon", "reward_unused_after_n_days", "loyalty_points_added", "loyalty_points_used", "loyalty_stamps_added", "loyalty_stamps_used", "member_credit_added", "member_credit_used", "membership_expiring_soon", "booking_followup_review_request", "customer_inactive_n_days", "ticket_created", "ticket_resolved", "ticket_closed", "integration_order_created", "integration_order_fulfilled", "integration_shipment_in_transit", "integration_shipment_out_for_delivery", "integration_shipment_delivered", "integration_shipment_delayed", "integration_shipment_attempted_delivery", "integration_shipment_ready_for_pickup", "integration_shipment_exception", "integration_order_cancelled", "integration_cart_abandoned", "integration_customer_created", "integration_product_out_of_stock", "post_published", "post_updated", "post_unpublished", "survey_invitation_sent", "survey_invitation_opened", "survey_response_submitted", "survey_completed", "survey_score_matched", "wallet_pass_generated", "agent_action.proposed", "agent_action.approved", "agent_action.rejected", "agent_action.executed", "agent_action.failed", "team_member_application_review_required", "custom_field_changed", "otp_sent", "review_request" ], "type": "string" }, "limit": { "description": "Max results (default 50, max 100)", "type": "number" }, "recipient": { "description": "Substring search on recipient", "type": "string" }, "status": { "description": "Status filter", "enum": [ "pending", "retrying", "sent", "delivered", "failed", "skipped" ], "type": "string" } }, "type": "object" }, "name": "list_notification_logs", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List upsell/cross-sell offer rules with optional filters.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "status": { "description": "Filter by status", "enum": [ "draft", "active", "paused" ], "type": "string" }, "type": { "description": "Filter by rule type", "enum": [ "upsell", "cross_sell", "bundle", "post_purchase" ], "type": "string" } }, "type": "object" }, "name": "list_offer_rules", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List shop orders with optional status and search filters.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search by order number or customer name/email", "type": "string" }, "status": { "description": "Filter by order status", "enum": [ "pending", "confirmed", "processing", "shipped", "delivered", "cancelled", "refunded" ], "type": "string" } }, "type": "object" }, "name": "list_orders", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List shop outlets/locations for the company.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "activeOnly": { "description": "When true, only return active outlets (default false)", "type": "boolean" } }, "type": "object" }, "name": "list_outlets", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_plan_options", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List the custom field schema for a post type. Use this before creating posts to know which keys to pass in meta and what types they expect.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "postTypeId": { "description": "Post type ID (from list_post_types)", "type": "string" } }, "required": [ "postTypeId" ], "type": "object" }, "name": "list_post_type_fields", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List all post types defined for this company (built-in: blog_post, page; plus any custom types).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_post_types", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List CMS posts (blog posts and/or pages) with optional filters.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search by title", "type": "string" }, "status": { "description": "Filter by status", "enum": [ "draft", "scheduled", "published", "archived" ], "type": "string" }, "type": { "description": "Filter by post type slug (blog_post, page, or any custom type — see list_post_types).", "type": "string" } }, "type": "object" }, "name": "list_posts", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List all product categories for the shop.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_product_categories", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List shop products with optional filters by name, status, or category.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "categoryId": { "description": "Filter by category ID", "type": "number" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search by product name", "type": "string" }, "status": { "description": "Filter by status", "enum": [ "DRAFT", "ACTIVE", "ARCHIVED" ], "type": "string" } }, "type": "object" }, "name": "list_products", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List promotion/coupon codes with optional status filter.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search by name", "type": "string" }, "status": { "description": "Filter by status", "enum": [ "DRAFT", "ACTIVE", "PAUSED", "EXPIRED" ], "type": "string" } }, "type": "object" }, "name": "list_promotions", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List booking resources (rooms, equipment, etc.).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" } }, "type": "object" }, "name": "list_resources", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List loyalty reward schemes (points/stamps programs) configured for this business.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search by name", "type": "string" } }, "type": "object" }, "name": "list_reward_schemes", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List customer segments. Segments group members by criteria for targeted campaigns.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search by segment name", "type": "string" } }, "type": "object" }, "name": "list_segments", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List service categories (groups for booking services like \"Treatments\", \"Classes\").", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_service_categories", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List service packages/prepaid session bundles with optional search, status, sorting, and pagination.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "order": { "description": "Sort order", "enum": [ "asc", "desc" ], "type": "string" }, "search": { "description": "Search package name", "type": "string" }, "sort": { "description": "Sort column: name, price, or createdAt", "type": "string" }, "status": { "description": "Filter by package status", "enum": [ "ACTIVE", "INACTIVE" ], "type": "string" } }, "type": "object" }, "name": "list_service_packages", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List schedule windows for booking services.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "dateFrom": { "description": "YYYY-MM-DD", "type": "string" }, "dateTo": { "description": "YYYY-MM-DD", "type": "string" }, "isOverride": { "description": "Filter to override entries only", "type": "boolean" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "resourceId": { "description": "Resource ID (room/equipment)", "type": "string" }, "serviceId": { "description": "Service ID", "type": "string" }, "staffId": { "description": "Staff member ID", "type": "string" } }, "type": "object" }, "name": "list_service_schedules", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List booking services with name, price, duration, and status.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search by name", "type": "string" }, "status": { "description": "Filter by status", "enum": [ "active", "inactive", "archived" ], "type": "string" } }, "type": "object" }, "name": "list_services", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List all shipping methods configured for the shop.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_shipping_methods", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List staff/team members in the business.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" } }, "type": "object" }, "name": "list_staff", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "status": { "description": "Filter by subscription status", "enum": [ "trialing", "active", "past_due", "cancelled" ], "type": "string" } }, "type": "object" }, "name": "list_subscriptions", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List survey invitation history without exposing token hashes or old invitation tokens.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max invitations (default 50)", "type": "number" }, "surveyId": { "description": "Survey ID", "type": "string" } }, "required": [ "surveyId" ], "type": "object" }, "name": "list_survey_invitations", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List automation workflows attached to a survey.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "surveyId": { "description": "Survey ID", "type": "string" } }, "required": [ "surveyId" ], "type": "object" }, "name": "list_survey_workflows", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List surveys with optional status/search filters.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max results (default 20)", "type": "number" }, "search": { "description": "Search survey title or description", "type": "string" }, "status": { "description": "Filter by survey status", "enum": [ "draft", "published", "closed", "archived" ], "type": "string" } }, "type": "object" }, "name": "list_surveys", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List all available tags for the merchant.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "search": { "description": "Search tags by name", "type": "string" } }, "type": "object" }, "name": "list_tags", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List tasks with optional status, assignee, and account filters.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Filter by related CRM account", "type": "string" }, "assigneeId": { "description": "Filter by assignee company_members.id", "type": "string" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "status": { "description": "Filter by task status", "enum": [ "todo", "in_progress", "blocked", "done" ], "type": "string" } }, "type": "object" }, "name": "list_tasks", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List the company's WhatsApp message templates with their Meta approval status (PENDING / APPROVED / REJECTED). Check this to see which templates are approved before referencing one in a campaign.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max templates to return (default 20)", "maximum": 100, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "list_templates", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List support tickets with optional filters.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Filter by CRM account ID", "type": "string" }, "category": { "description": "Filter by category", "enum": [ "bug", "feature_request", "account", "billing", "general", "other" ], "type": "string" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "priority": { "description": "Filter by priority", "enum": [ "critical", "high", "medium", "low" ], "type": "string" }, "search": { "description": "Search by subject", "type": "string" }, "status": { "description": "Filter by status", "enum": [ "open", "in_progress", "waiting_customer", "resolved", "closed" ], "type": "string" } }, "type": "object" }, "name": "list_tickets", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "List all membership tiers with member counts and stats.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_tiers", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Mark a CRM deal as lost. Requires a lost reason.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "dealId": { "description": "The deal ID", "type": "string" }, "reason": { "description": "Why the deal was lost", "type": "string" } }, "required": [ "dealId", "reason" ], "type": "object" }, "name": "mark_deal_lost", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Mark a CRM deal as won and set close date.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "closingDate": { "description": "Optional close date (YYYY-MM-DD)", "type": "string" }, "dealId": { "description": "The deal ID", "type": "string" } }, "required": [ "dealId" ], "type": "object" }, "name": "mark_deal_won", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "invoiceId": { "description": "Invoice ID", "type": "string" } }, "required": [ "invoiceId" ], "type": "object" }, "name": "mark_invoice_sent", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Mark a booking as no-show when the customer did not attend.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "bookingId": { "description": "The booking ID to mark as no-show", "type": "string" } }, "required": [ "bookingId" ], "type": "object" }, "name": "mark_no_show", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "subscriptionId": { "description": "Subscription ID", "type": "string" } }, "required": [ "subscriptionId" ], "type": "object" }, "name": "pause_subscription", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Post an internal message from an AI colleague into a Workroom thread. Use this to report findings, ask the owner for approval, or share source links after reading CRM/Inbox data. This does not send anything to customers.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agentId": { "description": "AI colleague ID that is a participant in the thread", "type": "string" }, "content": { "description": "Message to show in Workroom. Markdown is allowed.", "maxLength": 8000, "minLength": 1, "type": "string" }, "metadata": { "additionalProperties": {}, "description": "Optional generic metadata, e.g. {sourceRefs:[{type:\"inbox_conversation\",id:\"...\"}]}", "propertyNames": { "type": "string" }, "type": "object" }, "threadId": { "description": "Workroom thread ID", "type": "string" } }, "required": [ "threadId", "agentId", "content" ], "type": "object" }, "name": "post_workroom_message", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Preview a bulk customer import (max 2000 rows). Matches existing accounts by phone/email and shows create vs update actions plus points/stamps/credit deltas. Use commit_customer_import with the returned sessionId to apply.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "filename": { "description": "Original filename for audit", "maxLength": 255, "type": "string" }, "rows": { "items": { "properties": { "credit": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Target wallet stored value / 儲值 (HKD)" }, "customFields": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "propertyNames": { "type": "string" }, "type": "object" }, { "type": "null" } ], "description": "Account custom fields keyed by fieldName" }, "dateOfBirth": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "expiryDate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Membership expiry YYYY-MM-DD" }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "gender": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "lifeStage": { "anyOf": [ { "enum": [ "lead", "active", "churned", "vip" ], "type": "string" }, { "type": "null" } ] }, "memberCode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Merchant member code (e.g. LIZLAB-00144)" }, "membershipTier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Tier name or ID" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Display name" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Internal notes" }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "points": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Target loyalty points (分數)" }, "referredBy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Referrer account UUID, member code, phone, or email" }, "rowNumber": { "description": "1-based row number from the source file (for error reporting)", "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, "source": { "anyOf": [ { "enum": [ "walk_in", "online", "pos", "whatsapp", "referral", "import", "api", "shopify", "woocommerce", "email" ], "type": "string" }, { "type": "null" } ] }, "stamps": { "anyOf": [ { "type": "number" }, { "type": "null" } ] }, "tags": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma-separated tag names" }, "type": { "anyOf": [ { "enum": [ "individual", "business", "household" ], "type": "string" }, { "type": "null" } ] } }, "required": [ "rowNumber" ], "type": "object" }, "maxItems": 2000, "minItems": 1, "type": "array" } }, "required": [ "rows" ], "type": "object" }, "name": "preview_customer_import", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Preview how many customers would match dynamic segment criteria before creating or updating a segment.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "criteria": { "anyOf": [ { "properties": { "conditions": { "description": "Filter conditions", "items": { "properties": { "days": { "description": "Days window for time-based conditions", "type": "number" }, "definitionId": { "description": "Custom field definition ID for custom-field segment conditions", "type": "string" }, "fieldName": { "description": "Custom field name for custom-field segment conditions", "type": "string" }, "fieldType": { "description": "Custom field type for custom-field segment conditions", "type": "string" }, "operator": { "description": "Comparison operator, e.g. GT, GTE, LT, LTE, EQ, NEQ, IN, NOT_IN, CONTAINS, BEFORE, AFTER, IS_EMPTY", "type": "string" }, "threshold": { "description": "Numeric threshold for numeric conditions", "type": "number" }, "type": { "description": "Condition type, e.g. TOTAL_SPENDINGS, DAYS_SINCE_JOINED, PASS_STATUS, CUSTOM_FIELD", "type": "string" }, "value": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ], "description": "Single value for text/date/selection/custom-field conditions" }, "values": { "description": "Multiple values for IN/NOT_IN conditions", "items": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "type": "array" } }, "required": [ "type", "operator" ], "type": "object" }, "type": "array" }, "operator": { "description": "How to combine conditions", "enum": [ "AND", "OR" ], "type": "string" } }, "required": [ "operator", "conditions" ], "type": "object" }, { "type": "null" } ], "description": "Dynamic criteria to preview. Omit or null to count all active customers." } }, "type": "object" }, "name": "preview_segment_count", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Search this company's reviewed knowledge base and return grounded snippets with source document IDs. Use for merchant policies, FAQs, pricing notes, brand guidance, and other uploaded references.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Maximum matching snippets (default 5)", "maximum": 20, "minimum": 1, "type": "integer" }, "maxSnippetChars": { "description": "Maximum characters per snippet (default 600)", "maximum": 1200, "minimum": 120, "type": "integer" }, "query": { "description": "Question or keywords to search for in company knowledge", "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "query_company_knowledge", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform. Use before guessing tool names or JSON arguments.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "area": { "description": "Restrict search area (default all)", "enum": [ "all", "tools", "skills", "features" ], "type": "string" }, "limit": { "description": "Maximum results (default 8)", "maximum": 20, "minimum": 1, "type": "integer" }, "query": { "description": "Plain-language capability question, e.g. \"create a booking\" or \"send a campaign safely\"", "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "query_favcrm_platform", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Record a manual payment against an invoice (cash, bank transfer, cheque, card terminal). Updates invoice status to PARTIAL or PAID based on the running total.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "amount": { "description": "Payment amount as decimal string, e.g. \"100.00\"", "type": "string" }, "invoiceId": { "description": "Invoice ID to record payment against", "type": "string" }, "method": { "description": "Payment method", "enum": [ "cash", "bank_transfer", "cheque", "card", "stripe", "qfpay", "eftpay", "yedpay", "manual", "member_credit", "other" ], "type": "string" }, "note": { "description": "Internal note about this payment", "type": "string" }, "reference": { "description": "External reference (cheque number, bank transfer ID)", "type": "string" } }, "required": [ "invoiceId", "amount", "method" ], "type": "object" }, "name": "record_invoice_payment", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Step 1 of agentic signup. Sends a 6-digit verification code to the email. After the user reads the code, call register_organisation_verify with it to finish and receive an API key. Use this when a user wants to create a new FavCRM workspace from inside an MCP client.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "country": { "description": "ISO 3166-1 alpha-2 country code (HK, US, GB, ...)", "maxLength": 2, "minLength": 2, "type": "string" }, "email": { "description": "Owner email — receives a 6-digit code (10 min TTL)", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "type": "string" }, "industry": { "description": "Vertical — drives default templates", "enum": [ "beauty", "fitness", "tutoring", "retail", "hospitality", "services", "other" ], "type": "string" }, "organisationName": { "description": "Business / brand name (used as the first company name too)", "maxLength": 80, "minLength": 2, "type": "string" }, "timezone": { "description": "IANA timezone (e.g. Asia/Hong_Kong); falls back to country default", "type": "string" } }, "required": [ "organisationName", "email" ], "type": "object" }, "name": "register_organisation_request", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Step 2 of agentic signup. Confirms the 6-digit code and creates the workspace. Returns an API key the agent should set as Authorization: Bearer <apiKey> for all subsequent FavCRM MCP calls in this session.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "code": { "description": "6-digit code from the verification email", "maxLength": 6, "minLength": 6, "type": "string" }, "requestId": { "description": "From register_organisation_request", "type": "string" } }, "required": [ "requestId", "code" ], "type": "object" }, "name": "register_organisation_verify", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Remove the block at the given index (0-based). All subsequent blocks shift up by one.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "index": { "description": "0-based index of the block to remove", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "postId": { "description": "The post ID", "type": "string" } }, "required": [ "postId", "index" ], "type": "object" }, "name": "remove_post_block", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "orderedBlockIds": { "description": "Block IDs in the desired order; must match the existing set exactly", "items": { "type": "string" }, "minItems": 1, "type": "array" }, "postId": { "description": "The post ID", "type": "string" } }, "required": [ "postId", "orderedBlockIds" ], "type": "object" }, "name": "reorder_post_blocks", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "orderedFieldIds": { "description": "Field IDs in the desired order", "items": { "type": "string" }, "type": "array" }, "postTypeId": { "description": "Post type ID", "type": "string" } }, "required": [ "postTypeId", "orderedFieldIds" ], "type": "object" }, "name": "reorder_post_type_fields", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "__schema0": { "properties": { "data": { "properties": { "align": { "enum": [ "start", "center", "stretch" ], "type": "string" }, "columns": { "items": { "properties": { "blocks": { "items": { "oneOf": [ { "properties": { "data": { "properties": { "html": { "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "paragraph", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "anchor": { "type": "string" }, "level": { "anyOf": [ { "const": 1, "type": "number" }, { "const": 2, "type": "number" }, { "const": 3, "type": "number" }, { "const": 4, "type": "number" } ] }, "text": { "minLength": 1, "type": "string" } }, "required": [ "level", "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "heading", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "height": { "exclusiveMinimum": 0, "type": "number" }, "url": { "format": "uri", "type": "string" }, "width": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "url", "alt" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "image", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array" }, "ordered": { "type": "boolean" } }, "required": [ "ordered", "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "list", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "cite": { "type": "string" }, "text": { "minLength": 1, "type": "string" } }, "required": [ "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "quote", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "code": { "minLength": 1, "type": "string" }, "lang": { "type": "string" } }, "required": [ "lang", "code" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "code", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "additionalProperties": false, "properties": {}, "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "divider", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "size": { "enum": [ "sm", "md", "lg" ], "type": "string" } }, "required": [ "size" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "spacer", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "provider": { "enum": [ "youtube", "vimeo", "iframe" ], "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "provider", "url" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "embed", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "html": { "minLength": 1, "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "html", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "startSeconds": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" }, "videoId": { "pattern": "^[A-Za-z0-9_-]{11}$", "type": "string" } }, "required": [ "videoId" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "youtube", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "displayName": { "type": "string" }, "icon": { "enum": [ "pdf", "doc", "image", "video", "audio", "generic" ], "type": "string" }, "mimeType": { "minLength": 1, "type": "string" }, "originalName": { "minLength": 1, "type": "string" }, "sizeBytes": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "mimeType", "sizeBytes", "originalName" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "file", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "answer": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "question": { "minLength": 1, "type": "string" } }, "required": [ "id", "question", "answer" ], "type": "object" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "faq", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "body": { "minLength": 1, "type": "string" }, "title": { "type": "string" }, "tone": { "enum": [ "info", "success", "warning", "danger", "note" ], "type": "string" } }, "required": [ "tone", "body" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "callout", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "images": { "items": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, "type": "array" }, "layout": { "enum": [ "grid", "masonry", "carousel" ], "type": "string" } }, "required": [ "layout", "images" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "gallery", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "href": { "minLength": 1, "type": "string" }, "label": { "minLength": 1, "type": "string" }, "openInNewTab": { "type": "boolean" }, "style": { "enum": [ "primary", "secondary", "ghost" ], "type": "string" } }, "required": [ "label", "href" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "cta", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "body": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "title": { "minLength": 1, "type": "string" } }, "required": [ "id", "title", "body" ], "type": "object" }, "type": "array" }, "semantic": { "enum": [ "faq", "plain" ], "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "accordion", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "layout": { "enum": [ "card", "inline" ], "type": "string" }, "slug": { "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "product", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "$ref": "#/definitions/__schema0" } ] }, "type": "array" }, "span": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "blocks" ], "type": "object" }, "maxItems": 4, "minItems": 2, "type": "array" }, "stackBelow": { "pattern": "^(0|[0-9]+(\\.[0-9]+)?(px|rem|em|vw|vh|%))$", "type": "string" } }, "required": [ "columns" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "columns", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" } }, "properties": { "block": { "description": "Replacement block", "oneOf": [ { "properties": { "data": { "properties": { "html": { "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "paragraph", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "anchor": { "type": "string" }, "level": { "anyOf": [ { "const": 1, "type": "number" }, { "const": 2, "type": "number" }, { "const": 3, "type": "number" }, { "const": 4, "type": "number" } ] }, "text": { "minLength": 1, "type": "string" } }, "required": [ "level", "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "heading", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "height": { "exclusiveMinimum": 0, "type": "number" }, "url": { "format": "uri", "type": "string" }, "width": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "url", "alt" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "image", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array" }, "ordered": { "type": "boolean" } }, "required": [ "ordered", "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "list", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "cite": { "type": "string" }, "text": { "minLength": 1, "type": "string" } }, "required": [ "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "quote", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "code": { "minLength": 1, "type": "string" }, "lang": { "type": "string" } }, "required": [ "lang", "code" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "code", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "additionalProperties": false, "properties": {}, "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "divider", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "size": { "enum": [ "sm", "md", "lg" ], "type": "string" } }, "required": [ "size" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "spacer", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "provider": { "enum": [ "youtube", "vimeo", "iframe" ], "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "provider", "url" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "embed", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "html": { "minLength": 1, "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "html", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "startSeconds": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" }, "videoId": { "pattern": "^[A-Za-z0-9_-]{11}$", "type": "string" } }, "required": [ "videoId" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "youtube", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "displayName": { "type": "string" }, "icon": { "enum": [ "pdf", "doc", "image", "video", "audio", "generic" ], "type": "string" }, "mimeType": { "minLength": 1, "type": "string" }, "originalName": { "minLength": 1, "type": "string" }, "sizeBytes": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "mimeType", "sizeBytes", "originalName" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "file", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "answer": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "question": { "minLength": 1, "type": "string" } }, "required": [ "id", "question", "answer" ], "type": "object" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "faq", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "body": { "minLength": 1, "type": "string" }, "title": { "type": "string" }, "tone": { "enum": [ "info", "success", "warning", "danger", "note" ], "type": "string" } }, "required": [ "tone", "body" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "callout", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "images": { "items": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, "type": "array" }, "layout": { "enum": [ "grid", "masonry", "carousel" ], "type": "string" } }, "required": [ "layout", "images" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "gallery", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "href": { "minLength": 1, "type": "string" }, "label": { "minLength": 1, "type": "string" }, "openInNewTab": { "type": "boolean" }, "style": { "enum": [ "primary", "secondary", "ghost" ], "type": "string" } }, "required": [ "label", "href" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "cta", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "body": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "title": { "minLength": 1, "type": "string" } }, "required": [ "id", "title", "body" ], "type": "object" }, "type": "array" }, "semantic": { "enum": [ "faq", "plain" ], "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "accordion", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "layout": { "enum": [ "card", "inline" ], "type": "string" }, "slug": { "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "product", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "$ref": "#/definitions/__schema0" } ] }, "index": { "description": "0-based index of the block to replace", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "postId": { "description": "The post ID", "type": "string" } }, "required": [ "postId", "index", "block" ], "type": "object" }, "name": "replace_post_block", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Report a FavCRM platform issue when an agent finds a missing MCP path, tool failure, confusing schema, CLI/docs issue, or SDK fallback. Include logs, AI analysis, references, and clarification questions so the platform team can follow up.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "actualBehavior": { "description": "What actually happened", "minLength": 1, "type": "string" }, "aiAnalysis": { "description": "Agent analysis of likely root cause and impact", "minLength": 1, "type": "string" }, "area": { "description": "Issue area", "enum": [ "mcp_tool_missing", "mcp_tool_error", "mcp_schema_confusing", "auth", "cli", "docs", "sdk_fallback", "other" ], "type": "string" }, "clarificationQuestions": { "description": "Questions the platform team should ask the agent/user to resolve ambiguity", "items": { "type": "string" }, "type": "array" }, "environment": { "additionalProperties": {}, "description": "Runtime context such as MCP URL, CLI version, token type, client, sandbox, model, OS", "propertyNames": { "type": "string" }, "type": "object" }, "expectedBehavior": { "description": "What the agent or user expected to happen", "minLength": 1, "type": "string" }, "logs": { "description": "Relevant error messages, command output, or stack traces", "items": { "type": "string" }, "type": "array" }, "references": { "description": "Source links, file paths, docs, screenshots, or IDs that support the report", "items": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "type": "array" }, "severity": { "description": "Impact level", "enum": [ "critical", "high", "medium", "low" ], "type": "string" }, "stepsTried": { "description": "Concrete steps the agent tried before reporting", "items": { "type": "string" }, "minItems": 1, "type": "array" }, "title": { "description": "Short issue title", "maxLength": 180, "minLength": 3, "type": "string" }, "toolCalls": { "description": "Relevant MCP/CLI/SDK calls, arguments, and outcomes", "items": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "type": "array" }, "workaround": { "description": "Temporary workaround used, if any", "type": "string" } }, "required": [ "title", "severity", "area", "expectedBehavior", "actualBehavior", "stepsTried", "aiAnalysis" ], "type": "object" }, "name": "report_agent_issue", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create a merchant-owned Workroom approval request for a customer-facing send. The agent must not call send_message, send_whatsapp_message, send_test_campaign, or send_campaign directly.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "actionType": { "description": "The customer-facing action to execute only after merchant approval", "enum": [ "send_message", "send_whatsapp_message", "send_test_campaign", "send_campaign" ], "type": "string" }, "agentId": { "description": "AI colleague ID that is a participant in the thread", "type": "string" }, "payload": { "additionalProperties": {}, "description": "Exact tool payload to execute if the merchant approves. For send_test_campaign use { campaignId, to }, with an email address or international WhatsApp number matching the campaign channel.", "propertyNames": { "type": "string" }, "type": "object" }, "summary": { "description": "Human-readable draft/recipient/campaign summary shown above the approval buttons", "maxLength": 4000, "minLength": 1, "type": "string" }, "threadId": { "description": "Workroom thread ID where the approval button should appear", "type": "string" } }, "required": [ "threadId", "agentId", "actionType", "summary", "payload" ], "type": "object" }, "name": "request_send_approval", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted campaign.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "campaignId": { "description": "Campaign ID", "type": "string" } }, "required": [ "campaignId" ], "type": "object" }, "name": "restore_campaign", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted CMS post category.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "categoryId": { "description": "Category ID", "type": "string" } }, "required": [ "categoryId" ], "type": "object" }, "name": "restore_category", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted DRAFT invoice.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "invoiceId": { "description": "Invoice ID to restore", "type": "string" } }, "required": [ "invoiceId" ], "type": "object" }, "name": "restore_invoice", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted knowledge document.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "documentId": { "description": "Knowledge document ID", "type": "string" } }, "required": [ "documentId" ], "type": "object" }, "name": "restore_knowledge_document", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted CMS post.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "postId": { "description": "The post ID", "type": "string" } }, "required": [ "postId" ], "type": "object" }, "name": "restore_post", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted custom post type.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "postTypeId": { "description": "Post type ID", "type": "string" } }, "required": [ "postTypeId" ], "type": "object" }, "name": "restore_post_type", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted field on a post type schema.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "fieldId": { "description": "Field ID", "type": "string" }, "postTypeId": { "description": "Post type ID", "type": "string" } }, "required": [ "postTypeId", "fieldId" ], "type": "object" }, "name": "restore_post_type_field", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted promotion.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "promotionId": { "description": "Promotion ID", "type": "string" } }, "required": [ "promotionId" ], "type": "object" }, "name": "restore_promotion", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Restore a previously deleted service package by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "packageId": { "description": "Service package ID to restore", "type": "string" } }, "required": [ "packageId" ], "type": "object" }, "name": "restore_service_package", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Resume a paused subscription back to active.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "subscriptionId": { "description": "Subscription ID", "type": "string" } }, "required": [ "subscriptionId" ], "type": "object" }, "name": "resume_subscription", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "auditLogId": { "description": "Audit log ID to revert", "type": "string" }, "reason": { "description": "Reason for reverting this action", "maxLength": 1000, "type": "string" } }, "required": [ "auditLogId" ], "type": "object" }, "name": "revert_audit_action", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Fetch a URL's content into the knowledge base. Server crawls the URL, stores the response body in R2, returns the new document ID. Failures store the row with status='failed'. Use for adding marketing pages, FAQ docs, or external references the agent should be aware of.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "url": { "description": "URL to fetch (must be https / http and publicly reachable)", "format": "uri", "type": "string" } }, "required": [ "url" ], "type": "object" }, "name": "scrape_knowledge_url", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "createdAfter": { "description": "ISO timestamp lower bound", "type": "string" }, "createdBefore": { "description": "ISO timestamp upper bound", "type": "string" }, "limit": { "default": 25, "description": "Maximum rows to return", "maximum": 100, "minimum": 1, "type": "integer" }, "query": { "description": "Text to search for", "minLength": 1, "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_audit_logs", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Search across CRM accounts and contacts by name, email, or phone.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "limit": { "description": "Max per entity (default 10)", "type": "number" }, "query": { "description": "Search string", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_crm", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Search and filter members/accounts. Supports text search, date ranges, booking/activity history, membership tier, tags, and more. Use lastBookingBefore/inactiveDays to find inactive members.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "createdAfter": { "description": "ISO date — accounts created after this date", "type": "string" }, "createdBefore": { "description": "ISO date — accounts created before this date", "type": "string" }, "hasBooking": { "description": "Filter to members with/without any booking", "type": "boolean" }, "hasMembership": { "description": "Filter to members with active membership", "type": "boolean" }, "inactiveDays": { "description": "Members with no activity in the last N days", "type": "number" }, "lastActivityAfter": { "description": "ISO date — members with activity after this date", "type": "string" }, "lastActivityBefore": { "description": "ISO date — members with no activity since this date", "type": "string" }, "lastBookingAfter": { "description": "ISO date — members who have a booking after this date", "type": "string" }, "lastBookingBefore": { "description": "ISO date — members whose last booking is before this date (or have no bookings)", "type": "string" }, "lifeStage": { "description": "Filter by life stage", "enum": [ "lead", "active", "churned", "vip" ], "type": "string" }, "limit": { "description": "Max results (default 20)", "type": "number" }, "membershipStatus": { "description": "Filter by membership status", "enum": [ "active", "expired", "suspended" ], "type": "string" }, "order": { "description": "Sort order", "enum": [ "asc", "desc" ], "type": "string" }, "search": { "description": "Name, email, or phone to search", "type": "string" }, "sort": { "description": "Sort column: name, email, or createdAt", "type": "string" }, "source": { "description": "Filter by account source", "enum": [ "walk_in", "online", "pos", "whatsapp", "referral", "import", "api", "shopify", "woocommerce", "email" ], "type": "string" }, "tagIds": { "description": "Filter by tag IDs", "items": { "type": "string" }, "type": "array" }, "tierId": { "description": "Filter by membership tier ID", "type": "string" } }, "type": "object" }, "name": "search_members", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Search the available FavCRM tool catalog for relevant operations. Use this when the curated direct tool list does not contain the operation you need.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "includeInputSchema": { "description": "Include full JSON input schemas for returned tools. Defaults to false to keep context small.", "type": "boolean" }, "limit": { "description": "Maximum results (default 8, max 20)", "maximum": 20, "minimum": 1, "type": "integer" }, "query": { "description": "Plain-language tool search, e.g. \"delete a segment\" or \"set custom field values\"", "minLength": 1, "type": "string" }, "scope": { "description": "Optional exact scope filter, e.g. contacts, customer_segments, invoices", "type": "string" }, "write": { "description": "Filter to write tools (true) or read-only tools (false)", "type": "boolean" } }, "type": "object" }, "name": "search_tools", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "entityId": { "description": "Entity ID", "type": "string" }, "entityType": { "description": "Entity type", "enum": [ "account", "contact", "deal", "booking", "ticket", "product", "post" ], "type": "string" }, "values": { "description": "Values to upsert", "items": { "properties": { "definitionId": { "description": "Custom field definition ID", "type": "string" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Value to store, or null to clear" } }, "required": [ "definitionId", "value" ], "type": "object" }, "maxItems": 100, "type": "array" } }, "required": [ "entityType", "entityId", "values" ], "type": "object" }, "name": "set_custom_field_values", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Set a contact as the primary contact for its CRM account and demote other contacts on that account.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "contactId": { "description": "The contact ID to make primary", "type": "string" } }, "required": [ "contactId" ], "type": "object" }, "name": "set_primary_contact", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "date": { "description": "YYYY-MM-DD for a specific date instead of dayOfWeek", "type": "string" }, "dayOfWeek": { "description": "Day of week (0=Sun..6=Sat)", "enum": [ "mon", "tue", "wed", "thu", "fri", "sat", "sun" ], "type": "string" }, "endTime": { "description": "HH:MM (24h)", "type": "string" }, "isRecurring": { "description": "Default true", "type": "boolean" }, "resourceId": { "description": "Resource ID", "type": "string" }, "startTime": { "description": "HH:MM (24h)", "type": "string" }, "type": { "description": "Default available", "enum": [ "available", "blocked" ], "type": "string" } }, "required": [ "resourceId", "startTime", "endTime" ], "type": "object" }, "name": "set_resource_availability", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountIds": { "description": "CRM account IDs to set as segment members", "items": { "type": "string" }, "maxItems": 1000, "type": "array" }, "segmentId": { "description": "The segment ID", "type": "string" } }, "required": [ "segmentId", "accountIds" ], "type": "object" }, "name": "set_segment_members", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Set the complete pricing and booking-policy configuration for one membership tier on a booking service.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "advanceBookingDays": { "anyOf": [ { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, { "type": "null" } ] }, "bookingLimits": { "anyOf": [ { "additionalProperties": false, "properties": { "dailyBookingCount": { "anyOf": [ { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, { "type": "null" } ] }, "isAllowed": { "type": "boolean" }, "maxBookableTimeslots": { "anyOf": [ { "exclusiveMinimum": 0, "maximum": 9007199254740991, "type": "integer" }, { "type": "null" } ] }, "weeklyBookingCount": { "anyOf": [ { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, { "type": "null" } ] }, "weeklyHoursLimit": { "anyOf": [ { "minimum": 0, "type": "number" }, { "type": "null" } ] } }, "required": [ "isAllowed", "dailyBookingCount", "weeklyBookingCount", "weeklyHoursLimit" ], "type": "object" }, { "type": "null" } ] }, "discountPercent": { "anyOf": [ { "pattern": "^\\d+(?:\\.\\d{1,2})?$", "type": "string" }, { "type": "null" } ] }, "priceOverride": { "anyOf": [ { "pattern": "^\\d+(?:\\.\\d{1,2})?$", "type": "string" }, { "type": "null" } ] }, "serviceId": { "description": "Booking service ID", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" }, "tierId": { "description": "Membership tier ID", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" }, "timeSlotPricing": { "anyOf": [ { "items": { "additionalProperties": false, "properties": { "dayOfWeek": { "items": { "enum": [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ], "type": "string" }, "minItems": 1, "type": "array" }, "description": { "maxLength": 200, "type": "string" }, "endTime": { "pattern": "^(?:(?:[01]\\d|2[0-3]):[0-5]\\d|24:00)$", "type": "string" }, "price": { "minimum": 0, "type": "number" }, "priority": { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "startTime": { "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$", "type": "string" } }, "required": [ "dayOfWeek", "startTime", "endTime", "price" ], "type": "object" }, "type": "array" }, { "type": "null" } ] } }, "required": [ "serviceId", "tierId", "priceOverride", "discountPercent", "advanceBookingDays", "timeSlotPricing", "bookingLimits" ], "type": "object" }, "name": "set_service_tier_pricing", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Add an availability window for a staff member (companyMembers.id). Use day-of-week + recurring for weekly schedules, or a specific date for one-off changes.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "date": { "description": "YYYY-MM-DD for a specific date instead of dayOfWeek", "type": "string" }, "dayOfWeek": { "description": "Day of week (0=Sun..6=Sat)", "enum": [ "mon", "tue", "wed", "thu", "fri", "sat", "sun" ], "type": "string" }, "endTime": { "description": "HH:MM (24h)", "type": "string" }, "isRecurring": { "description": "Default true", "type": "boolean" }, "memberId": { "description": "companyMembers.id of the staff", "type": "string" }, "startTime": { "description": "HH:MM (24h)", "type": "string" }, "type": { "description": "Default available", "enum": [ "available", "blocked" ], "type": "string" } }, "required": [ "memberId", "startTime", "endTime" ], "type": "object" }, "name": "set_staff_availability", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Issue a new MCP access token scoped to another company/organisation. This does not mutate the current MCP connection: the client must use the returned token on later /mcp requests. Platform operators should prefer explicit-company admin tools when available.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "companyId": { "description": "The company ID to switch to (use list_my_companies to find available IDs)", "type": "string" } }, "required": [ "companyId" ], "type": "object" }, "name": "switch_company", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Undo a campaign send during its one-minute safety buffer. Use immediately when the merchant says to stop or undo a submitted campaign.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "campaignId": { "description": "Buffered campaign ID to return to its prior draft state", "type": "string" } }, "required": [ "campaignId" ], "type": "object" }, "name": "undo_campaign_send", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "The account ID to update", "type": "string" }, "assignedTo": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Assigned team member user ID, or null to clear" }, "dateOfBirth": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD date of birth, or null to clear" }, "email": { "description": "Email address", "format": "email", "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", "type": "string" }, "firstName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "First name for individual accounts" }, "gender": { "description": "Gender", "type": "string" }, "lastName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Last name for individual accounts" }, "lifeStage": { "description": "CRM life stage", "enum": [ "lead", "active", "churned", "vip" ], "type": "string" }, "memberCode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Merchant member code, or null to clear" }, "name": { "description": "Account/customer display name", "type": "string" }, "notes": { "description": "Internal notes", "type": "string" }, "phone": { "description": "Phone number", "type": "string" }, "referredByAccountId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Referrer account ID, or null to clear" }, "source": { "description": "Acquisition source", "enum": [ "walk_in", "online", "pos", "whatsapp", "referral", "import", "api", "shopify", "woocommerce", "email" ], "type": "string" }, "type": { "description": "Account type", "enum": [ "individual", "business", "household" ], "type": "string" } }, "required": [ "accountId" ], "type": "object" }, "name": "update_account", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update global booking settings. Pass only the fields you want to change.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accessPassAfterMinutes": { "description": "Minutes after booking end when the access QR remains usable", "maximum": 1440, "minimum": 0, "type": "integer" }, "accessPassBeforeMinutes": { "description": "Minutes before booking start when the access QR becomes usable", "maximum": 1440, "minimum": 0, "type": "integer" }, "allowMemberCancellation": { "description": "Allow members to cancel bookings from the customer portal", "type": "boolean" }, "blockUntilFinished": { "description": "Block customers from booking again while they have active bookings", "type": "boolean" }, "bookingReminderEnabled": { "description": "Send the default pre-booking reminder", "type": "boolean" }, "bookingReminderLeadHours": { "description": "Hours before booking start for the default reminder", "maximum": 168, "minimum": 1, "type": "integer" }, "calendarStyle": { "description": "Booking flow calendar presentation", "enum": [ "list", "calendar" ], "type": "string" }, "cooldownMessage": { "anyOf": [ { "maxLength": 200, "type": "string" }, { "type": "null" } ], "description": "Optional message shown when cooldown blocks a booking" }, "globalCooldownDays": { "anyOf": [ { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, { "type": "null" } ], "description": "Minimum days between customer bookings, or null to disable" }, "hideUnavailableTimeslots": { "description": "Hide unavailable timeslots instead of showing them as full", "type": "boolean" }, "memberCancellationCutoffHours": { "anyOf": [ { "maximum": 720, "minimum": 0, "type": "integer" }, { "type": "null" } ], "description": "Hours before booking start when member cancellation closes, or null for no cutoff" }, "memberReschedulingMode": { "description": "Choose whether rescheduling is disabled, merchant-only, or available to members", "enum": [ "disabled", "merchant_only", "member" ], "type": "string" }, "minimumAdvanceBookingMinutes": { "anyOf": [ { "maximum": 43200, "minimum": 0, "type": "integer" }, { "type": "null" } ], "description": "Minutes before slot start when customer booking closes. null/0 = no cutoff; set > 0 to require advance notice" }, "requireBookingConfirmation": { "description": "Require merchant confirmation before bookings are confirmed", "type": "boolean" }, "sameDayReminderEnabled": { "description": "Send an additional same-day reminder before booking start", "type": "boolean" }, "sameDayReminderLeadHours": { "description": "Hours before booking start for the same-day reminder", "maximum": 24, "minimum": 1, "type": "integer" }, "showAccessPass": { "description": "Show access pass/package options in booking flow", "type": "boolean" }, "showCoupon": { "description": "Show coupon field in booking flow", "type": "boolean" } }, "type": "object" }, "name": "update_booking_settings", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update an existing campaign, including audience exclusions. Channel cannot be changed after creation. Pass only fields to change.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "audienceExclusions": { "description": "Optional exclusions: accountIds contains specific customer account IDs; campaignIds contains previous campaign IDs whose accepted recipients must be omitted. Pass empty arrays to clear exclusions.", "properties": { "accountIds": { "default": [], "items": { "minLength": 1, "type": "string" }, "maxItems": 1000, "type": "array" }, "campaignIds": { "default": [], "items": { "minLength": 1, "type": "string" }, "maxItems": 50, "type": "array" } }, "type": "object" }, "campaignId": { "description": "Campaign ID", "type": "string" }, "channelConfig": { "additionalProperties": {}, "description": "For email, use subject + htmlBody + optional plainTextBody. Legacy html is normalized to htmlBody.", "propertyNames": { "type": "string" }, "type": "object" }, "name": { "description": "Name", "type": "string" }, "recipientIds": { "description": "Explicit customer account IDs", "items": { "type": "string" }, "type": "array" }, "recipientSource": { "description": "Recipient source: all | segment | individual | csv | list", "enum": [ "all", "segment", "individual", "csv", "list" ], "type": "string" }, "scheduledAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Scheduled timestamp (ISO 8601)" }, "segmentId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Segment ID" }, "status": { "description": "New campaign status", "enum": [ "DRAFT", "SCHEDULED", "PAUSED", "CANCELLED" ], "type": "string" } }, "required": [ "campaignId" ], "type": "object" }, "name": "update_campaign", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update a CMS post category.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "categoryId": { "description": "Category ID", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Description" }, "name": { "description": "Name", "type": "string" }, "slug": { "description": "URL slug", "type": "string" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" } }, "required": [ "categoryId" ], "type": "object" }, "name": "update_category", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update fields on an existing contact.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "contactId": { "description": "The contact ID", "type": "string" }, "email": { "description": "Email address", "type": "string" }, "isPrimary": { "description": "Mark as the primary contact", "type": "boolean" }, "jobTitle": { "description": "Job title", "type": "string" }, "name": { "description": "Name", "type": "string" }, "phone": { "description": "Phone number", "type": "string" } }, "required": [ "contactId" ], "type": "object" }, "name": "update_contact", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update a custom field definition label, type, options, required flag, or sort order.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "definitionId": { "description": "Custom field definition ID", "type": "string" }, "fieldLabel": { "description": "Human-readable label", "minLength": 1, "type": "string" }, "fieldType": { "description": "Field type", "enum": [ "text", "number", "date", "select", "multiselect", "boolean", "url", "email", "phone" ], "type": "string" }, "isRequired": { "description": "Whether this field is required", "type": "boolean" }, "options": { "description": "Allowed values for select/multiselect fields", "items": { "type": "string" }, "type": "array" }, "sortOrder": { "description": "Display order", "type": "number" } }, "required": [ "definitionId" ], "type": "object" }, "name": "update_custom_field", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Linked CRM account ID, or null to clear" }, "amount": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Deal amount, or null to clear" }, "closingDate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Expected closing date, or null to clear" }, "contactId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Linked contact ID, or null to clear" }, "dealId": { "description": "The deal ID", "type": "string" }, "dealType": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Deal type/category, or null to clear" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Deal notes or description, or null to clear" }, "name": { "description": "Deal name", "type": "string" }, "ownerId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Owner user/team member ID, or null to clear" }, "probability": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Win probability, or null to clear" }, "stage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Pipeline stage, or null to clear" } }, "required": [ "dealId" ], "type": "object" }, "name": "update_deal", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Move a deal to a different pipeline stage.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "dealId": { "description": "The deal ID", "type": "string" }, "lostReason": { "description": "Required when moving to lost", "type": "string" }, "probability": { "description": "Optional win probability (percent string)", "type": "string" }, "stage": { "description": "New pipeline stage. \"lead\", \"new\" and \"open\" are accepted aliases of \"discovery\".", "enum": [ "discovery", "qualified", "proposal", "negotiation", "won", "lost", "lead", "new", "open" ], "type": "string" } }, "required": [ "dealId", "stage" ], "type": "object" }, "name": "update_deal_stage", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update the status of a shop order (e.g. confirm, ship, cancel).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "orderId": { "description": "The order UUID", "type": "string" }, "status": { "description": "New order status", "enum": [ "pending", "confirmed", "processing", "shipped", "delivered", "cancelled", "refunded" ], "type": "string" } }, "required": [ "orderId", "status" ], "type": "object" }, "name": "update_order_status", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update an existing shop outlet/location by ID.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "acceptsOrders": { "description": "Whether outlet accepts online orders", "type": "boolean" }, "address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Street address" }, "id": { "description": "Outlet ID (UUID)", "type": "string" }, "isActive": { "description": "Whether outlet is active", "type": "boolean" }, "latitude": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" } ] }, { "type": "null" } ], "description": "Latitude" }, "logoUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Logo URL" }, "longitude": { "anyOf": [ { "anyOf": [ { "type": "string" }, { "type": "number" } ] }, { "type": "null" } ], "description": "Longitude" }, "name": { "description": "Outlet name", "type": "string" }, "phone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Contact phone" }, "sortOrder": { "description": "Display sort order", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" } }, "required": [ "id" ], "type": "object" }, "name": "update_outlet", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update an existing CMS post (any post type). Only provided fields are changed.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "definitions": { "__schema0": { "oneOf": [ { "properties": { "data": { "properties": { "html": { "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "paragraph", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "anchor": { "type": "string" }, "level": { "anyOf": [ { "const": 1, "type": "number" }, { "const": 2, "type": "number" }, { "const": 3, "type": "number" }, { "const": 4, "type": "number" } ] }, "text": { "minLength": 1, "type": "string" } }, "required": [ "level", "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "heading", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "height": { "exclusiveMinimum": 0, "type": "number" }, "url": { "format": "uri", "type": "string" }, "width": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "url", "alt" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "image", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "minLength": 1, "type": "string" }, "minItems": 1, "type": "array" }, "ordered": { "type": "boolean" } }, "required": [ "ordered", "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "list", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "cite": { "type": "string" }, "text": { "minLength": 1, "type": "string" } }, "required": [ "text" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "quote", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "code": { "minLength": 1, "type": "string" }, "lang": { "type": "string" } }, "required": [ "lang", "code" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "code", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "additionalProperties": false, "properties": {}, "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "divider", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "size": { "enum": [ "sm", "md", "lg" ], "type": "string" } }, "required": [ "size" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "spacer", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "provider": { "enum": [ "youtube", "vimeo", "iframe" ], "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "provider", "url" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "embed", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "html": { "minLength": 1, "type": "string" } }, "required": [ "html" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "html", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "aspectRatio": { "type": "string" }, "startSeconds": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "title": { "type": "string" }, "url": { "format": "uri", "type": "string" }, "videoId": { "pattern": "^[A-Za-z0-9_-]{11}$", "type": "string" } }, "required": [ "videoId" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "youtube", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "displayName": { "type": "string" }, "icon": { "enum": [ "pdf", "doc", "image", "video", "audio", "generic" ], "type": "string" }, "mimeType": { "minLength": 1, "type": "string" }, "originalName": { "minLength": 1, "type": "string" }, "sizeBytes": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "mimeType", "sizeBytes", "originalName" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "file", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "answer": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "question": { "minLength": 1, "type": "string" } }, "required": [ "id", "question", "answer" ], "type": "object" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "faq", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "body": { "minLength": 1, "type": "string" }, "title": { "type": "string" }, "tone": { "enum": [ "info", "success", "warning", "danger", "note" ], "type": "string" } }, "required": [ "tone", "body" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "callout", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "images": { "items": { "properties": { "alt": { "type": "string" }, "caption": { "type": "string" }, "url": { "format": "uri", "type": "string" } }, "required": [ "url", "alt" ], "type": "object" }, "type": "array" }, "layout": { "enum": [ "grid", "masonry", "carousel" ], "type": "string" } }, "required": [ "layout", "images" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "gallery", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "href": { "minLength": 1, "type": "string" }, "label": { "minLength": 1, "type": "string" }, "openInNewTab": { "type": "boolean" }, "style": { "enum": [ "primary", "secondary", "ghost" ], "type": "string" } }, "required": [ "label", "href" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "cta", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "items": { "items": { "properties": { "body": { "type": "string" }, "id": { "minLength": 1, "type": "string" }, "title": { "minLength": 1, "type": "string" } }, "required": [ "id", "title", "body" ], "type": "object" }, "type": "array" }, "semantic": { "enum": [ "faq", "plain" ], "type": "string" } }, "required": [ "items" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "accordion", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "layout": { "enum": [ "card", "inline" ], "type": "string" }, "slug": { "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "product", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" }, { "properties": { "data": { "properties": { "align": { "enum": [ "start", "center", "stretch" ], "type": "string" }, "columns": { "items": { "properties": { "blocks": { "items": { "allOf": [ { "$ref": "#/definitions/__schema0" } ] }, "type": "array" }, "span": { "exclusiveMinimum": 0, "type": "number" } }, "required": [ "blocks" ], "type": "object" }, "maxItems": 4, "minItems": 2, "type": "array" }, "stackBelow": { "pattern": "^(0|[0-9]+(\\.[0-9]+)?(px|rem|em|vw|vh|%))$", "type": "string" } }, "required": [ "columns" ], "type": "object" }, "id": { "minLength": 1, "type": "string" }, "type": { "const": "columns", "type": "string" }, "version": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" } }, "required": [ "id", "version", "type", "data" ], "type": "object" } ] } }, "properties": { "blocks": { "description": "Replaces the entire ordered block array. Use append_post_block / replace_post_block / remove_post_block / reorder_post_blocks for per-block edits. Each block: { id, version, type, data }. Types: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callout, gallery, cta, accordion, product, columns.", "items": { "$ref": "#/definitions/__schema0" }, "type": "array" }, "categoryIds": { "description": "Category IDs", "items": { "type": "string" }, "type": "array" }, "excerpt": { "description": "Plain-text summary only — never JSON. Omit to leave unchanged.", "type": "string" }, "featuredImage": { "description": "Cover image URL", "type": "string" }, "meta": { "additionalProperties": {}, "description": "Custom field values; merged shallowly with existing meta. Use this for structured data, not excerpt.", "propertyNames": { "type": "string" }, "type": "object" }, "parentId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Parent post ID for nested types." }, "postId": { "description": "The post ID", "type": "string" }, "publishedAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Publish timestamp (ISO 8601)" }, "seoDescription": { "description": "SEO description override", "type": "string" }, "seoTitle": { "description": "SEO title override", "type": "string" }, "slug": { "description": "URL slug (must be unique per company+type).", "type": "string" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" }, "status": { "description": "Post status", "enum": [ "draft", "scheduled", "published", "archived" ], "type": "string" }, "tagIds": { "description": "Tag IDs to sync (replaces existing tags)", "items": { "type": "string" }, "type": "array" }, "title": { "description": "Post title", "type": "string" }, "type": { "description": "Change post type (e.g. blog_post → treatment). Slug is re-checked for uniqueness under the new type.", "type": "string" }, "visibility": { "description": "Visibility", "enum": [ "public", "private", "members_only" ], "type": "string" } }, "required": [ "postId" ], "type": "object" }, "name": "update_post", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update a custom post type. Built-in types (blog_post, page) cannot be modified.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Icon name or URL" }, "label": { "description": "Display label", "type": "string" }, "labelPlural": { "description": "Plural display label", "type": "string" }, "postTypeId": { "description": "Post type ID", "type": "string" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" }, "supportsBlocks": { "description": "Allow content blocks (rich body)", "type": "boolean" }, "supportsCategories": { "description": "Allow categories on this post type", "type": "boolean" }, "supportsExcerpt": { "description": "Allow an excerpt field", "type": "boolean" }, "supportsFeaturedImage": { "description": "Allow a featured image", "type": "boolean" }, "supportsNesting": { "description": "Allow parent/child nesting", "type": "boolean" } }, "required": [ "postTypeId" ], "type": "object" }, "name": "update_post_type", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update a field on a post type schema. Changing fieldType or flipping required=true is blocked when posts already use the field unless force=true is passed.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "fieldId": { "description": "Field ID", "type": "string" }, "fieldType": { "description": "Field type", "enum": [ "text", "textarea", "richtext", "number", "boolean", "date", "datetime", "select", "multiselect", "url", "email", "image", "file", "gallery", "attachments", "repeater" ], "type": "string" }, "fields": { "anyOf": [ { "items": { "properties": { "fieldType": { "description": "Child field type. Repeaters support scalar/select types plus singular upload fields: text, textarea, richtext, number, boolean, date, datetime, select, multiselect, url, email, image, file. Nested repeaters and array upload fields are not supported.", "enum": [ "text", "textarea", "richtext", "number", "boolean", "date", "datetime", "select", "multiselect", "url", "email", "image", "file", "gallery", "attachments", "repeater" ], "type": "string" }, "helpText": { "description": "Optional hint shown in the UI", "type": "string" }, "key": { "description": "snake_case key for this repeater child field. Auto-derived from label if omitted.", "type": "string" }, "label": { "description": "Human-readable child field label", "type": "string" }, "options": { "additionalProperties": {}, "description": "For select/multiselect child fields: { choices: [\"a\",\"b\"] }.", "propertyNames": { "type": "string" }, "type": "object" }, "required": { "description": "Whether this child field is required on every repeater row", "type": "boolean" }, "sortOrder": { "type": "number" } }, "required": [ "label", "fieldType" ], "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Child fields for fieldType=\"repeater\"." }, "force": { "description": "Override safety guards. Required to change fieldType or flip required=true on a field that already has data in posts.", "type": "boolean" }, "helpText": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Help text shown next to the input" }, "label": { "description": "Display label", "type": "string" }, "options": { "anyOf": [ { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, { "type": "null" } ], "description": "For URL fields, { uploadable: true } enables file upload while preserving a URL string in meta." }, "postTypeId": { "description": "Post type ID", "type": "string" }, "required": { "description": "Whether the field is required", "type": "boolean" }, "sortOrder": { "description": "Sort order (lower = earlier)", "type": "number" } }, "required": [ "postTypeId", "fieldId" ], "type": "object" }, "name": "update_post_type_field", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update an existing product. Only provided fields are changed.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "categoryIds": { "description": "Category IDs (first is primary). Replaces all existing categories.", "items": { "type": "number" }, "type": "array" }, "description": { "description": "Product description", "type": "string" }, "discountPrice": { "description": "Discounted price", "type": "string" }, "memberPrice": { "description": "Members-only price", "type": "string" }, "name": { "description": "Product name", "type": "string" }, "price": { "description": "Price as decimal string", "type": "string" }, "productId": { "description": "The product ID", "type": "number" }, "sku": { "description": "SKU code", "type": "string" }, "status": { "description": "Product status", "enum": [ "DRAFT", "ACTIVE", "ARCHIVED" ], "type": "string" } }, "required": [ "productId" ], "type": "object" }, "name": "update_product", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update an existing promotion. Pass only the fields you want to change.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "code": { "description": "Promotion code", "type": "string" }, "endsAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "End timestamp (ISO 8601)" }, "name": { "description": "Name", "type": "string" }, "promotionId": { "description": "Promotion ID", "type": "string" }, "startsAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Start timestamp (ISO 8601)" }, "status": { "description": "Status filter", "enum": [ "active", "inactive", "expired" ], "type": "string" }, "type": { "description": "Type", "enum": [ "percentage", "fixed_amount" ], "type": "string" }, "usageLimitPerCustomer": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Usage limit per customer" }, "usageLimitTotal": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Total usage limit across all customers" }, "value": { "description": "Discount value (numeric or decimal string)", "type": "string" } }, "required": [ "promotionId" ], "type": "object" }, "name": "update_promotion", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "criteria": { "anyOf": [ { "properties": { "conditions": { "description": "Filter conditions", "items": { "properties": { "days": { "description": "Days window for time-based conditions", "type": "number" }, "definitionId": { "description": "Custom field definition ID for custom-field segment conditions", "type": "string" }, "fieldName": { "description": "Custom field name for custom-field segment conditions", "type": "string" }, "fieldType": { "description": "Custom field type for custom-field segment conditions", "type": "string" }, "operator": { "description": "Comparison operator, e.g. GT, GTE, LT, LTE, EQ, NEQ, IN, NOT_IN, CONTAINS, BEFORE, AFTER, IS_EMPTY", "type": "string" }, "threshold": { "description": "Numeric threshold for numeric conditions", "type": "number" }, "type": { "description": "Condition type, e.g. TOTAL_SPENDINGS, DAYS_SINCE_JOINED, PASS_STATUS, CUSTOM_FIELD", "type": "string" }, "value": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "null" } ], "description": "Single value for text/date/selection/custom-field conditions" }, "values": { "description": "Multiple values for IN/NOT_IN conditions", "items": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" } ] }, "type": "array" } }, "required": [ "type", "operator" ], "type": "object" }, "type": "array" }, "operator": { "description": "How to combine conditions", "enum": [ "AND", "OR" ], "type": "string" } }, "required": [ "operator", "conditions" ], "type": "object" }, { "type": "null" } ], "description": "Replace dynamic criteria, or null to clear criteria" }, "description": { "description": "New segment description", "type": "string" }, "name": { "description": "New segment name", "type": "string" }, "segmentId": { "description": "The segment ID to update", "type": "string" }, "segmentType": { "description": "Change segment type", "enum": [ "STATIC", "DYNAMIC" ], "type": "string" } }, "required": [ "segmentId" ], "type": "object" }, "name": "update_segment", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update an existing booking service. Pass only the fields you want to change.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "capacity": { "description": "Participants per slot", "type": "number" }, "categoryId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Category ID" }, "commissionCurrency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Commission currency (ISO code)" }, "commissionType": { "anyOf": [ { "enum": [ "fixed", "percentage" ], "type": "string" }, { "type": "null" } ], "description": "Commission type: \"fixed\" or \"percentage\"" }, "commissionValue": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Commission amount as decimal string" }, "cooldownMinutes": { "description": "Cooldown minutes between bookings", "type": "number" }, "description": { "description": "Description", "type": "string" }, "durationMinutes": { "description": "Duration of one booking in minutes", "type": "number" }, "name": { "description": "Name", "type": "string" }, "price": { "description": "Decimal string, e.g. \"80.00\"", "type": "string" }, "requireLogin": { "description": "If true, guests cannot book without an account", "type": "boolean" }, "requiresConfirmation": { "description": "If true, bookings start pending and need explicit confirmation", "type": "boolean" }, "requiresResource": { "description": "Whether the service requires a resource (room/equipment)", "type": "boolean" }, "requiresStaff": { "description": "Whether the service requires staff assignment", "type": "boolean" }, "serviceId": { "description": "Service ID to update", "type": "string" }, "status": { "description": "Status filter", "enum": [ "active", "inactive", "archived" ], "type": "string" }, "visibility": { "description": "Visibility: public | members_only | hidden", "enum": [ "public", "members_only", "hidden" ], "type": "string" } }, "required": [ "serviceId" ], "type": "object" }, "name": "update_service", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update an existing service package. Pass only the fields you want to change.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "applicableItems": { "description": "Item IDs the package can be redeemed against", "items": { "properties": { "itemId": { "type": "string" }, "itemType": { "enum": [ "booking_service", "event" ], "type": "string" } }, "required": [ "itemType", "itemId" ], "type": "object" }, "type": "array" }, "applicableType": { "description": "What this package applies to: services | products | both", "enum": [ "ALL", "ALL_BOOKINGS", "ALL_EVENTS", "SELECTED" ], "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Description" }, "name": { "description": "Name", "maxLength": 200, "minLength": 1, "type": "string" }, "packageId": { "description": "Service package ID to update", "type": "string" }, "price": { "description": "Decimal string, e.g. \"80.00\"", "minimum": 0, "type": "number" }, "sessionCount": { "description": "Number of sessions in the package", "maximum": 100, "minimum": 1, "type": "integer" }, "status": { "description": "Status filter", "enum": [ "ACTIVE", "INACTIVE" ], "type": "string" }, "validDays": { "description": "Validity period in days", "maximum": 3650, "minimum": 1, "type": "integer" } }, "required": [ "packageId" ], "type": "object" }, "name": "update_service_package", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update a service schedule window. Pass only fields to change.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "byWeekday": { "anyOf": [ { "items": { "maximum": 6, "minimum": 0, "type": "integer" }, "type": "array" }, { "type": "null" } ], "description": "Weekdays (0=Mon..6=Sun) for weekly recurrence" }, "date": { "description": "Date (YYYY-MM-DD)", "type": "string" }, "endTime": { "description": "End time (HH:mm)", "type": "string" }, "maxCapacity": { "description": "Maximum capacity for this slot", "type": "number" }, "notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Free-form notes" }, "recurrence": { "description": "Recurrence rule: none | daily | weekly | monthly", "enum": [ "none", "daily", "weekly", "monthly" ], "type": "string" }, "recurrenceEndDate": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Recurrence end date (YYYY-MM-DD)" }, "recurrenceInterval": { "description": "Recurrence interval (e.g. every N weeks)", "type": "number" }, "resourceId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Resource ID (room/equipment)" }, "scheduleId": { "description": "Schedule ID", "type": "string" }, "staffId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Staff member ID" }, "startTime": { "description": "Start time (HH:mm)", "type": "string" } }, "required": [ "scheduleId" ], "type": "object" }, "name": "update_service_schedule", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "closeAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional ISO datetime when the survey closes" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Survey description" }, "openAt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional ISO datetime when the survey opens" }, "questionBlocks": { "description": "Ordered survey question blocks", "items": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "type": "array" }, "settings": { "additionalProperties": {}, "description": "Survey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage", "propertyNames": { "type": "string" }, "type": "object" }, "slug": { "description": "URL slug", "type": "string" }, "status": { "description": "Survey status", "enum": [ "draft", "published", "closed", "archived" ], "type": "string" }, "surveyId": { "description": "Survey ID", "type": "string" }, "title": { "description": "Survey title", "minLength": 1, "type": "string" }, "visibility": { "description": "Survey access mode", "enum": [ "public", "members_only", "token_only", "private" ], "type": "string" } }, "required": [ "surveyId" ], "type": "object" }, "name": "update_survey", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Rename or recolor an existing CRM tag.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "color": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "New color, or null to clear" }, "name": { "description": "New tag name", "type": "string" }, "tagId": { "description": "The tag ID to update", "type": "string" } }, "required": [ "tagId" ], "type": "object" }, "name": "update_tag", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update a task (status, priority, assignee, due date, completion).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "assigneeId": { "description": "Assignee user ID", "type": "string" }, "description": { "description": "Description", "type": "string" }, "dueDate": { "description": "Due date (ISO 8601)", "type": "string" }, "priority": { "description": "Priority", "enum": [ "low", "medium", "high", "urgent" ], "type": "string" }, "status": { "description": "Status filter", "enum": [ "todo", "in_progress", "blocked", "done" ], "type": "string" }, "taskId": { "description": "The task ID", "type": "string" }, "title": { "description": "Title", "type": "string" } }, "required": [ "taskId" ], "type": "object" }, "name": "update_task", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Update the status of an existing support ticket.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "status": { "description": "New status", "enum": [ "open", "in_progress", "waiting_customer", "resolved", "closed" ], "type": "string" }, "ticketId": { "description": "The ticket ID to update", "type": "string" } }, "required": [ "ticketId", "status" ], "type": "object" }, "name": "update_ticket_status", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Download an external image URL into R2 and attach it as the post's featuredImage. Replaces the manual flow of pasting external URLs (which break when the source goes down). Validates content-type starts with `image/` and rejects payloads larger than 20 MB. No AI credits charged — only standard storage.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "postId": { "description": "The post ID", "type": "string" }, "sourceUrl": { "description": "Public http(s) URL to fetch the image from. Must respond with an image/* content-type.", "format": "uri", "type": "string" } }, "required": [ "postId", "sourceUrl" ], "type": "object" }, "name": "upload_post_cover_from_url", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Create or update a survey automation workflow, usually triggered by survey_response_submitted.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "graph": { "description": "Workflow graph definition", "properties": { "edges": { "items": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "type": "array" }, "nodes": { "items": { "additionalProperties": {}, "propertyNames": { "type": "string" }, "type": "object" }, "type": "array" }, "trigger": { "minLength": 1, "type": "string" } }, "required": [ "trigger", "nodes", "edges" ], "type": "object" }, "name": { "description": "Workflow name", "minLength": 1, "type": "string" }, "status": { "description": "Workflow status", "enum": [ "draft", "active", "disabled" ], "type": "string" }, "surveyId": { "description": "Survey ID", "type": "string" }, "trigger": { "description": "Trigger name, default from graph.trigger", "type": "string" }, "workflowId": { "description": "Existing workflow ID when updating", "type": "string" } }, "required": [ "surveyId", "name", "graph" ], "type": "object" }, "name": "upsert_survey_workflow", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "campaignId": { "description": "Campaign ID to validate", "type": "string" } }, "required": [ "campaignId" ], "type": "object" }, "name": "validate_campaign", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Check if a promotion code is valid for a given order. Returns isValid, discount amount, and an error code/message if invalid. Use before applying to a checkout.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "accountId": { "description": "Customer account ID — used for per-customer usage limits", "type": "string" }, "amount": { "description": "Order subtotal in major units (dollars, not cents)", "type": "number" }, "channel": { "description": "Where the promo is being applied", "enum": [ "booking", "event", "online", "pos" ], "type": "string" }, "promotionCode": { "description": "The code customer entered", "type": "string" } }, "required": [ "promotionCode", "channel", "amount" ], "type": "object" }, "name": "validate_promotion", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } }, { "description": "Void an invoice. Destructive — invoice can no longer be paid or edited; existing payments are preserved as history. Cannot void invoices that are already PAID or VOIDED.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "invoiceId": { "description": "Invoice ID to void", "type": "string" } }, "required": [ "invoiceId" ], "type": "object" }, "name": "void_invoice", "outputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "data": { "description": "Tool result payload — shape varies per tool, see the tool description" }, "renderType": { "description": "UI rendering hint for the result", "enum": [ "table", "detail", "stats", "text", "chart", "download" ], "type": "string" }, "summary": { "description": "One-line human-readable summary of the action", "type": "string" } }, "required": [ "data", "summary", "renderType" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:fc1118ea023698365d0bdd2adacf145305bc68d4b7ebc444f0a0da07030d01a4 | sha256sum