Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

FavCRM

REMOTE · API.FAVCRM.IO · SCANNED AUG 3

Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.

Available components

+8 this week 82 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability85
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 18916 tokens (~82/item across 228 items; 223 tools + 5 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · api.favcrm.io

# add to Claude Code
claude mcp add --transport http io-favcrm-favcrm https://api.favcrm.io/mcp
# ~/.codex/config.toml
[mcp_servers.io-favcrm-favcrm]
url = "https://api.favcrm.io/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-favcrm-favcrm": {
      "type": "remote",
      "url": "https://api.favcrm.io/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add io-favcrm-favcrm --url https://api.favcrm.io/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  io-favcrm-favcrm:
    url: "https://api.favcrm.io/mcp"
// mcp.json
{
  "mcpServers": {
    "io-favcrm-favcrm": {
      "type": "http",
      "url": "https://api.favcrm.io/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +4
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 74

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://api.favcrm.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=favcrm.io CN=WE1,O=Google Trust Services,C=US 13 Jun 2026 11 Sept 2026 ECDSA 256 ECDSA-SHA256 8b36e4b5d46a89d8137da5f9739177d7
SANs: favcrm.io, api.favcrm.io, *.api.favcrm.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC insecure

Validation of api.favcrm.io. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 57355 8 Verified
favcrm.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200
Header Value
strict-transport-security max-age=31536000
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy no-referrer

Protected resource metadata

Retrieved No
Problem no_resource_metadata
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.favcrm.io/mcp Verified 200
http (plaintext) http://api.favcrm.io/mcp HTTPS enforced 301 https://api.favcrm.io/mcp
MCP tools — 223 exposed · ~18,806 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
accept_team_invite_request ~79

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.

NameTypeReqDescription
tokenstringyesInvite token returned by create_team_member_invite or from the invite link
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

accept_team_invite_verify ~98

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.

NameTypeReqDescription
codestringyes6-digit code from the invite email
namestringOptional display name when creating a new user
tokenstringyesInvite token returned by create_team_member_invite or from the invite link
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

add_knowledge_text ~82

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.

NameTypeReqDescription
contentstringyesDocument body text
namestringyesFriendly title for the document
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

append_post_block ~102

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.

NameTypeReqDescription
blocksarrayyesBlock(s) to append
postIdstringyesThe post ID
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

archive_survey ~32

Archive a survey and remove it from active survey lists.

NameTypeReqDescription
surveyIdstringyesSurvey ID to archive
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

assign_staff_to_service ~53

Assign a staff member to a booking service. Pass users.id from list_staff.userId.

NameTypeReqDescription
serviceIdstringyesService ID
userIdstringyesusers.id from list_staff.userId
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

attach_post_cover_from_job ~193

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.

NameTypeReqDescription
assetIndexintegerWhich asset to use when the job produced multiple outputs. Default 0.
jobIdstringyesThe ai-media job ID (from generate_image, generate_post_cover, or POST /v6/merchant/ai-media/generate)
pollIfRunningbooleanWhen true, advance polling once if the job is still running. Default true.
pollTimeoutMsintegerWhen pollIfRunning is true, wait up to this long for terminal state. Default 30000.
postIdstringyesThe post ID
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

attach_tags ~55

Attach one or more tags to a member/account. Useful for segmenting members after filtering.

NameTypeReqDescription
accountIdsarrayyesMember/account IDs to tag (max 100)
tagIdstringyesTag ID to attach
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

cancel_booking ~40

Cancel a booking. Optionally provide a reason.

NameTypeReqDescription
bookingIdstringyesThe booking ID to cancel
reasonstringCancellation reason
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

cancel_subscription ~44

Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.

NameTypeReqDescription
subscriptionIdstringyesSubscription ID
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

check_plan_operation ~125

Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.

NameTypeReqDescription
deltaintegerPlanned usage increment. Currently quota checks are single-resource preflights.
moduleCodestringModule code to check, e.g. whatsapp or crm
quotaCodestringQuota code to check, e.g. contacts or mcp_calls_per_minute
toolNamestringMCP tool name to preflight, e.g. create_account
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

clone ~93

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.

NameTypeReqDescription
entityIdstringyesID of the entity to clone
entityTypestringyesType of entity to clone
namestringOverride the name of the cloned entity (defaults to "Original Name (Copy)")
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

commit_customer_import ~65

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.

NameTypeReqDescription
rowsarrayyes
sessionIdstringyessessionId from preview_customer_import
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

complete_booking ~34

Mark a booking as completed. Triggers commission calculation if configured.

NameTypeReqDescription
bookingIdstringyesThe booking ID to complete
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

confirm_booking ~26

Confirm a pending booking.

NameTypeReqDescription
bookingIdstringyesThe booking ID to confirm
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

convert_lead ~119

Convert a lead account to an active customer. Optionally create a linked pipeline deal (Salesforce/HubSpot-style convert).

NameTypeReqDescription
accountIdstringyesLead account ID
createDealbooleanCreate a deal during conversion
dealAmountnumberOptional deal amount
dealClosingDatestringOptional deal close date
dealNamestringOptional deal name
dealStagestringOptional initial deal stage
lifeStagestringLifecycle after convert (default active)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_account ~205

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.

NameTypeReqDescription
addressobjectPostal address
emailstringEmail address
enrollMembershipbooleanWhether to create an active membership immediately
expiresAtstringOptional ISO expiry for the membership
firstNamestringFirst name for individual accounts
lastNamestringLast name for individual accounts
lifeStagestringCRM life stage. Defaults to active.
namestringyesAccount/customer display name
notesstringInternal notes
phonestringPhone number
sourcestringAcquisition source. Defaults to api.
tierIdstringMembership tier ID to enroll into. If omitted, the company default tier may apply.
typestringAccount type. Defaults to individual.
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_booking ~138

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.

NameTypeReqDescription
accountIdstringyesThe member/account ID
bookingDatestringyesDate in YYYY-MM-DD format
endTimestringyesEnd time in HH:MM format
notesstringBooking notes
resourceIdstringResource ID
serviceIdstringyesThe service ID
staffIdstringStaff member ID
startTimestringyesStart time in HH:MM format
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_broadcast ~108

Create a DRAFT WhatsApp or SMS broadcast campaign. The broadcast is NOT sent — admin must review and send it from the Broadcasts page.

NameTypeReqDescription
channelstringChannel (default whatsapp)
namestringyesCampaign name
recipientFilterobjectFilter criteria for recipients, e.g. { tagIds: ["..."] }
scheduledAtstringISO date to schedule the broadcast
templateIdstringMessage template ID to use
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_campaign ~207

Create a marketing campaign (email, SMS, or WhatsApp) in DRAFT. For email channelConfig, use subject + htmlBody + optional plainTextBody. recipientSource="list" is accepted as an alias for "individual".

NameTypeReqDescription
channelstringyesemail | sms | whatsapp | push
channelConfigobjectChannel-specific config: subject + htmlBody for email, body for sms/whatsapp, templateId, etc. Legacy email html is normalized to htmlBody.
namestringyesCampaign name (internal)
recipientIdsarrayRequired if recipientSource="individual", "list", or "csv"; values are account IDs
recipientSourcestringWhere to source recipients from. "list" is normalized to "individual".
scheduledAtISO datetime for scheduled send (status must be SCHEDULED)
segmentIdRequired if recipientSource="segment"
statusstringDefault DRAFT
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_category ~84

Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat.

NameTypeReqDescription
descriptionstringDescription
namestringyesCategory name
slugstringAuto-generated from name if omitted.
sortOrdernumberSort order (lower = earlier)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_contact ~76

Create a contact on an existing CRM account.

NameTypeReqDescription
accountIdstringyesOwning account ID
emailstringEmail
isPrimarybooleanMark as primary contact
jobTitlestringJob title
namestringyesContact name
phonestringPhone
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_custom_field ~130

Create a custom field definition for CRM entities. Use options for select or multiselect fields.

NameTypeReqDescription
entityTypestringyesEntity type, e.g. account, contact, deal, booking
fieldLabelstringyesHuman-readable label, e.g. Preferred branch
fieldNamestringyesStable machine name, e.g. preferred_branch
fieldTypestringyesField type
isRequiredbooleanWhether this field is required
optionsarrayAllowed values for select/multiselect fields
sortOrdernumberDisplay order
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_deal ~118

Create a CRM sales pipeline deal, optionally linked to a customer account and contact.

NameTypeReqDescription
accountIdLinked CRM account ID
amountDeal amount
closingDateExpected closing date
contactIdLinked contact ID
dealTypeDeal type/category
descriptionDeal notes or description
namestringyesDeal name
ownerIdOwner user/team member ID
probabilityWin probability, e.g. 25
stagePipeline stage
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_inbox_reply_suggestion ~135

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.

NameTypeReqDescription
agentIdstringyesAI colleague ID creating the suggestion
bodystringyesDraft reply text for the merchant to review
conversationIdstringyesInbox conversation ID
metadataobjectOptional metadata such as rationale, confidence, or source refs
sourceMessageIdstringInbound message ID this draft responds to
subjectstringOptional email subject suggestion
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_invoice ~106

Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId.

NameTypeReqDescription
accountIdstringyesCustomer accountId (CRM account)
currencystringISO currency code (defaults to company default)
dueDatestringDue date (ISO 8601 date)
lineItemsarrayLine items to bill — totals are computed server-side
notesstringFree-form notes shown on the invoice
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_note ~68

Add a note to a member/account, booking, ticket, or invoice.

NameTypeReqDescription
bodystringyesNote content
entityIdstringyesThe entity ID
entityTypestringyesType of entity
isPinnedbooleanPin this note to the top
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_offer_rule ~110

Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts.

NameTypeReqDescription
descriptionstringRule description
namestringyesRule name
productsarrayProducts to suggest with optional discounts
triggerConfigobjectTrigger-specific configuration
triggerTypestringyesWhen the offer triggers
typestringyesRule type: upsell, cross_sell, bundle, or post_purchase
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_outlet ~135

Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration.

NameTypeReqDescription
acceptsOrdersbooleanWhether outlet accepts online orders (default true)
addressStreet address
idstringOptional outlet UUID (for legacy migration; non-standard formats accepted)
isActivebooleanWhether outlet is active (default true)
latitudeLatitude
logoUrlLogo URL
longitudeLongitude
namestringyesOutlet name
phoneContact phone
sortOrderintegerDisplay sort order (default 0)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_plan_upgrade_link ~141

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.

NameTypeReqDescription
billingCyclestring
confirmbooleanRequired true to create a Stripe-hosted payment or billing link.
planCodestringTarget plan code, e.g. favcrm-lite. Either planId or planCode is required.
planIdstringTarget plan ID. Use list_plan_options first if unknown.
returnUrlstringWhere Stripe should return after checkout/portal. Defaults to merchant billing settings.
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_post ~428

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.

NameTypeReqDescription
blocksarrayOrdered 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, callo…
categoryIdsarrayCategory IDs (post types with supportsCategories only)
excerptstringPlain-text summary only — never JSON. Auto-derived from the first paragraph/heading block if omitted and the post type supports excerpts.
featuredImagestringCover image URL
metaobjectStructured 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.
parentIdParent post ID for nested types (e.g. pages).
publishedAtISO timestamp; required when status=scheduled.
seoDescriptionstringSEO meta description
seoTitlestringSEO title override
slugstringURL slug. Auto-generated from title if omitted; collisions get -2, -3 suffix.
sortOrdernumberSort order (lower = earlier)
statusstringStatus (default draft)
tagIdsarrayTag IDs to attach to the post
titlestringyesPost title
typestringyesPost type slug (e.g. blog_post, page, treatment). Must exist in post_types for this company.
visibilitystringVisibility (default public)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_post_type ~204

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.

NameTypeReqDescription
iconIcon name or URL
labelstringyesSingular UI label, e.g. "Treatment"
labelPluralstringyesPlural UI label, e.g. "Treatments"
slugstringyesLowercase identifier, e.g. "treatment". Auto-derived from label if omitted.
sortOrdernumberSort order (lower = earlier)
supportsBlocksbooleanDefault true
supportsCategoriesbooleanDefault true
supportsExcerptbooleanDefault true
supportsFeaturedImagebooleanDefault true
supportsNestingbooleanDefault false
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_post_type_field ~287

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.

NameTypeReqDescription
fieldTypestringyesField type: text | textarea | richtext | number | boolean | date | datetime | select | multiselect | url | email | image | file | gallery | attachments | repeater
fieldsarrayRequired for fieldType="repeater". Defines the child fields stored in each row object.
helpTextstringOptional hint shown in the UI
keystringsnake_case key used in meta. Auto-derived from label if omitted.
labelstringyesHuman-readable field label, e.g. "Tagline"
optionsobjectFor 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 merc…
postTypeIdstringyesPost type ID (from list_post_types)
requiredbooleanWhether the field is required on post creation (default false)
sortOrdernumberSort order (lower = earlier)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_product ~122

Create a new shop product as DRAFT. Merchant can review and activate from the portal.

NameTypeReqDescription
categoryIdsarrayCategory IDs (first is primary)
descriptionstringProduct description
discountPricestringDiscounted price
memberPricestringMembers-only price
namestringyesProduct name
pricestringyesPrice as decimal string (e.g. "29.99")
productTypestringProduct type (default one_time)
skustringSKU code
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_product_category ~84

Create a product category. Use parentId to create subcategories under an existing category.

NameTypeReqDescription
descriptionstringCategory description
namestringyesCategory name
onlineEnabledbooleanShow in online store (default true)
parentIdnumberParent category ID for subcategories
sortOrdernumberDisplay sort order
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_promotion ~254

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.

NameTypeReqDescription
bookingEnabledbooleanAllow on bookings
codestringyesCoupon code customers enter at checkout (auto-uppercased)
descriptionstringDescription
endsAtISO datetime — when the promo expires
eventEnabledbooleanAllow on event registrations
maximumDiscountCap on percentage discounts, decimal string
minimumAmountMinimum order amount required, decimal string
minimumQuantityMinimum item count required
namestringyesPromotion name (internal)
onlineEnabledbooleanAllow on online shop orders
posEnabledbooleanAllow at POS
startsAtISO datetime — when the promo becomes valid
statusstringDefault active
typestringDefault percentage
usageLimitPerCustomerMax uses per single customer
usageLimitTotalMax total uses across all customers
valuestringyesDiscount value as decimal string
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_resource ~98

Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true.

NameTypeReqDescription
capacitynumberHow many concurrent bookings (default 1)
descriptionstringDescription
namestringyesResource name (e.g. "Treatment Room A")
statusstringDefault active
typestringyesFree-form type label, e.g. "room", "equipment"
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_segment ~72

Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering.

NameTypeReqDescription
criteriaobjectDynamic segment criteria
descriptionstringSegment description
namestringyesSegment name
segmentTypestringSegment type (default DYNAMIC)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_service ~319

Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category.

NameTypeReqDescription
allowedTierIdsarrayRequired when visibility=members_only
capacitynumberHow many participants per slot (default 1)
categoryIdstringExisting service category ID
commissionCurrencyCommission currency (ISO code)
commissionTypeCommission type: "fixed" or "percentage"
commissionValueCommission amount as decimal string
cooldownMinutesnumberMinimum gap before bookings can be cancelled (default 0)
currencystringISO currency code, default HKD
descriptionstringDescription
durationMinutesnumberyesDuration of one booking in minutes
namestringyesService name
pricestringDecimal string, e.g. "80.00". Defaults to "0".
requireLoginbooleanDefault true — guests cannot book
requiresConfirmationbooleanIf true, bookings start as pending and need confirm_booking
requiresResourcebooleanWhether the service requires a resource (room/equipment)
requiresStaffbooleanWhether the service requires staff assignment
sortOrdernumberSort order (lower = earlier)
statusstringDefault active
typestringDefault one_on_one
visibilitystringVisibility: public | members_only | hidden
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_service_category ~61

Create a service category (e.g. "Treatments", "Classes") to group bookable services.

NameTypeReqDescription
descriptionstringDescription
namestringyesCategory name
sortOrdernumberSort order (lower = earlier)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_service_package ~127

Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.

NameTypeReqDescription
applicableItemsarrayItems used when applicableType=SELECTED
applicableTypestringDefault ALL
descriptionstringDescription
namestringyesPackage name
pricenumberyesPackage price
sessionCountintegeryesNumber of included sessions
statusstringDefault ACTIVE
validDaysintegeryesValidity window after purchase, in days
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_service_schedule ~203

Create a bookable schedule window for a service, including recurring weekly/daily availability.

NameTypeReqDescription
byWeekdayarrayWeekdays for weekly recurrence: 0=Mon, 1=Tue, ... 6=Sun
datestringyesStart date or one-off date (YYYY-MM-DD)
endTimestringyesHH:MM (24h)
maxCapacitynumberMax bookings per generated slot
notesstringFree-form notes
recurrencestringDefault none
recurrenceEndDatestringYYYY-MM-DD
recurrenceIntervalnumberDefault 1
resourceIdstringOptional resource ID to bind this schedule to a room/resource
serviceIdstringyesService ID
staffIdstringOptional companyMembers.id to bind this schedule to staff
startTimestringyesHH:MM (24h)
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_subscription ~168

Create a recurring subscription for a member. Bind to a membership tier or set a custom amount + cycle.

NameTypeReqDescription
accountIdstringyesCustomer accountId
amountnumberOverride amount per cycle (otherwise derived from tier)
autoRenewbooleanAuto-renew at period end (default true)
billingCyclestringBilling cycle (default monthly)
currencystringISO currency code (otherwise derived from tier or company default)
currentPeriodEndstringPeriod end (ISO 8601). Defaults to start + cycle.
currentPeriodStartstringPeriod start (ISO 8601). Defaults to now.
tierIdstringMembership tier ID — if set, amount/currency default from the tier
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_survey ~158

Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.

NameTypeReqDescription
closeAtstringOptional ISO datetime when the survey closes
descriptionstringOptional survey description
openAtstringOptional ISO datetime when the survey opens
questionBlocksarrayyesOrdered survey question blocks
settingsobjectSurvey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage
slugstringOptional URL slug; generated from title when omitted
statusstringInitial status
titlestringyesSurvey title
visibilitystringWho can access the survey
NameTypeReqDescription
datayesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.