search_members
Search Members
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.
ParameterssortlimitordersearchsourcetagIdstierIdlifeStagehasBookingcreatedAfterinactiveDayscreatedBefore+6 more
get_member_profile
Get Member Profile
Get detailed profile for a specific member/account by ID.
ParametersaccountIdrequired
preview_customer_import
Preview Customer Import
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.
Parametersrowsrequiredfilename
commit_customer_import
Commit Customer Import
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.
ParametersrowsrequiredsessionIdrequired
create_account
Create Account
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.
ParametersnamerequiredtypeemailnotesphonesourcetierIdaddresslastNameexpiresAtfirstNamelifeStage+1 more
update_account
Update Account
Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.
ParametersnametypeemailnotesphonegendersourcelastNameaccountIdrequiredfirstNamelifeStageassignedTo+3 more
delete_account
Delete Account
Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.
ParametersaccountIdrequired
List all available tags for the merchant.
Parameterssearch
Create a CRM tag for customer segmentation and organization.
Parametersnamerequiredcolor
Rename or recolor an existing CRM tag.
ParametersnamecolortagIdrequired
Delete a CRM tag and remove it from all tagged entities.
ParameterstagIdrequired
Attach one or more tags to a member/account. Useful for segmenting members after filtering.
ParameterstagIdrequiredaccountIdsrequired
Detach one tag from one or more member/account records.
ParameterstagIdrequiredaccountIdsrequired
List all membership tiers with member counts and stats.
Takes no parameters.
get_membership_tier
Get Membership Tier
Get a specific membership tier by ID.
ParameterstierIdrequired
issue_rewards
Issue Rewards
Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs.
ParametersexpiresAtmemberIdsrequiredgiftOfferIdrequired
enrol_membership
Enrol Membership
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.
ParameterstierIdaccountIdrequiredexpiresAt
get_loyalty_balance
Get Loyalty Balance
Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled.
ParametersaccountIdrequired
earn_loyalty_points
Earn Loyalty Points
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.
ParametersfieldrequiredamountrequiredreasonaccountIdrequired
get_dashboard_stats
Get Dashboard Stats
Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.
Takes no parameters.
list_bookings
List Bookings
List bookings with filters for date range, status, service, staff, or member.
ParameterslimitdateTostatusstaffIddateFromaccountIdserviceId
get_booking_detail
Get Booking Detail
Get full booking details including line items, status history, and participants.
ParametersbookingIdrequired
get_booking_stats
Get Booking Stats
Get booking counts: today, this week, this month, and breakdown by status.
Takes no parameters.
get_available_slots
Get Available Slots
Find available booking slots for a service on a specific date.
ParametersdaterequiredstaffIdserviceIdrequiredresourceId
list_services
List Services
List booking services with name, price, duration, and status.
Parameterslimitsearchstatus
get_service_detail
Get Service Detail
Get full service details including addons, staff, resources, and tier pricing.
ParametersserviceIdrequired
get_service_tier_pricing
Get Service Tier Pricing
Read every membership-tier pricing configuration for one booking service.
ParametersserviceIdrequired
set_service_tier_pricing
Set Service Tier Pricing
Set the complete pricing and booking-policy configuration for one membership tier on a booking service.
ParameterstierIdrequiredserviceIdrequiredbookingLimitsrequiredpriceOverriderequireddiscountPercentrequiredtimeSlotPricingrequiredadvanceBookingDaysrequired
copy_service_tier_pricing
Copy Service Tier Pricing
Copy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service.
ParametersserviceIdrequiredsourceTierIdrequiredtargetTierIdrequired
create_service
Create Service
Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category.
ParametersnamerequiredtypepricestatuscapacitycurrencysortOrdercategoryIdvisibilitydescriptionrequireLoginrequiresStaff+8 more
update_service
Update Service
Update an existing booking service. Pass only the fields you want to change.
ParametersnamepricestatuscapacityserviceIdrequiredcategoryIdvisibilitydescriptionrequireLoginrequiresStaffcommissionTypecommissionValue+5 more
create_service_schedule
Create Service Schedule
Create a bookable schedule window for a service, including recurring weekly/daily availability.
ParametersdaterequirednotesendTimerequiredstaffIdbyWeekdayserviceIdrequiredstartTimerequiredrecurrenceresourceIdmaxCapacityrecurrenceEndDaterecurrenceInterval
list_service_schedules
List Service Schedules
List schedule windows for booking services.
ParameterslimitdateTostaffIddateFromserviceIdisOverrideresourceId
update_service_schedule
Update Service Schedule
Update a service schedule window. Pass only fields to change.
ParametersdatenotesendTimestaffIdbyWeekdaystartTimerecurrenceresourceIdscheduleIdrequiredmaxCapacityrecurrenceEndDaterecurrenceInterval
assign_staff_to_service
Assign Staff To Service
Assign a staff member to a booking service. Pass users.id from list_staff.userId.
ParametersuserIdrequiredserviceIdrequired
link_resource_to_service
Link Resource To Service
Link a room/resource to a booking service.
ParametersserviceIdrequiredresourceIdrequired
list_service_categories
List Service Categories
List service categories (groups for booking services like "Treatments", "Classes").
Takes no parameters.
create_service_category
Create Service Category
Create a service category (e.g. "Treatments", "Classes") to group bookable services.
ParametersnamerequiredsortOrderdescription
create_resource
Create Resource
Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true.
Parametersnamerequiredtyperequiredstatuscapacitydescription
set_resource_availability
Set Resource Availability
Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.
ParametersdatetypeendTimerequireddayOfWeekstartTimerequiredresourceIdrequiredisRecurring
set_staff_availability
Set Staff Availability
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.
ParametersdatetypeendTimerequiredmemberIdrequireddayOfWeekstartTimerequiredisRecurring
get_booking_settings
Get Booking Settings
Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.
Takes no parameters.
update_booking_settings
Update Booking Settings
Update global booking settings. Pass only the fields you want to change.
ParametersshowCouponcalendarStyleshowAccessPasscooldownMessageblockUntilFinishedglobalCooldownDaysaccessPassAfterMinutesbookingReminderEnabledmemberReschedulingModesameDayReminderEnabledaccessPassBeforeMinutesallowMemberCancellation+6 more
List support tickets with optional filters.
ParameterslimitsearchstatuscategorypriorityaccountId
get_ticket_stats
Get Ticket Stats
Get ticket counts grouped by status.
Takes no parameters.
create_ticket
Create Ticket
Create a support ticket for a member issue.
ParameterssourcesubjectrequiredcategorypriorityaccountIdcontactNamedescriptioncontactEmailcontactPhone
update_ticket_status
Update Ticket Status
Update the status of an existing support ticket.
ParametersstatusrequiredticketIdrequired
List surveys with optional status/search filters.
Parameterslimitsearchstatus
create_survey
Create Survey
Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.
ParametersslugtitlerequiredopenAtstatuscloseAtsettingsvisibilitydescriptionquestionBlocksrequired
Get survey detail, including blocks, publishing status, visibility, settings, and response count.
ParameterssurveyIdrequired
update_survey
Update Survey
Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.
ParametersslugtitleopenAtstatuscloseAtsettingssurveyIdrequiredvisibilitydescriptionquestionBlocks
archive_survey
Archive Survey
Archive a survey and remove it from active survey lists.
ParameterssurveyIdrequired
get_survey_stats
Get Survey Stats
Get response and invitation metrics for a survey overview dashboard.
ParameterssurveyIdrequired
get_survey_responses
Get Survey Responses
List responses for a survey.
ParameterslimitsurveyIdrequired
list_survey_invitations
List Survey Invitations
List survey invitation history without exposing token hashes or old invitation tokens.
ParameterslimitsurveyIdrequired
create_survey_invitation
Create Survey Invitation
Create a token-auth survey invitation for a specific member/account or contact.
ParameterschannelmetadatasurveyIdrequiredaccountIdcontactIdexpiresAtrecipientNamerecipientEmailrecipientPhone
list_survey_workflows
List Survey Workflows
List automation workflows attached to a survey.
ParameterssurveyIdrequired
upsert_survey_workflow
Upsert Survey Workflow
Create or update a survey automation workflow, usually triggered by survey_response_submitted.
ParametersnamerequiredgraphrequiredstatustriggersurveyIdrequiredworkflowId
List CRM deals (sales pipeline) with optional filters.
ParameterspagelimitstagesearchdealTypeaccountId
Get detailed CRM deal information by ID.
ParametersdealIdrequired
Create a CRM sales pipeline deal, optionally linked to a customer account and contact.
ParametersnamerequiredstageamountownerIddealTypeaccountIdcontactIdclosingDatedescriptionprobability
Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.
ParametersnamestageamountdealIdrequiredownerIddealTypeaccountIdcontactIdclosingDatedescriptionprobability
Soft-delete a CRM deal from the sales pipeline.
ParametersdealIdrequired
update_deal_stage
Update Deal Stage
Move a deal to a different pipeline stage.
ParametersstagerequireddealIdrequiredlostReasonprobability
mark_deal_won
Mark Deal Won
Mark a CRM deal as won and set close date.
ParametersdealIdrequiredclosingDate
mark_deal_lost
Mark Deal Lost
Mark a CRM deal as lost. Requires a lost reason.
ParametersdealIdrequiredreasonrequired
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.
ParametersdealNameaccountIdrequireddealStagelifeStagecreateDealdealAmountdealClosingDate
list_contacts
List Contacts
List contacts (people linked to CRM accounts), optionally filtered by account or search.
ParameterslimitsearchaccountId
Fetch a single contact by ID.
ParameterscontactIdrequired
create_contact
Create Contact
Create a contact on an existing CRM account.
ParametersnamerequiredemailphonejobTitleaccountIdrequiredisPrimary
update_contact
Update Contact
Update fields on an existing contact.
ParametersnameemailphonejobTitlecontactIdrequiredisPrimary
set_primary_contact
Set Primary Contact
Set a contact as the primary contact for its CRM account and demote other contacts on that account.
ParameterscontactIdrequired
delete_contact
Delete Contact
Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.
ParameterscontactIdrequired
list_custom_fields
List Custom Fields
List custom field definitions for CRM entities such as account, contact, deal, or booking.
ParametersentityTyperequired
get_custom_field
Get Custom Field
Get a custom field definition by ID.
ParametersdefinitionIdrequired
create_custom_field
Create Custom Field
Create a custom field definition for CRM entities. Use options for select or multiselect fields.
ParametersoptionsfieldNamerequiredfieldTyperequiredsortOrderentityTyperequiredfieldLabelrequiredisRequired
update_custom_field
Update Custom Field
Update a custom field definition label, type, options, required flag, or sort order.
ParametersoptionsfieldTypesortOrderfieldLabelisRequireddefinitionIdrequired
delete_custom_field
Delete Custom Field
Delete a custom field definition and its stored values.
ParametersdefinitionIdrequired
get_custom_field_values
Get Custom Field Values
Get custom field values for a CRM entity such as an account, contact, deal, or booking.
ParametersentityIdrequiredentityTyperequired
set_custom_field_values
Set Custom Field Values
Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value.
ParametersvaluesrequiredentityIdrequiredentityTyperequired
List tasks with optional status, assignee, and account filters.
ParameterslimitstatusaccountIdassigneeId
Get detailed task information by ID.
ParameterstaskIdrequired
Create a task. Optionally link to a CRM account or assign to a team member.
ParameterstitlerequiredstatusdueDatepriorityaccountIdassigneeIddescription
Update a task (status, priority, assignee, due date, completion).
ParameterstitlestatustaskIdrequireddueDatepriorityassigneeIddescription
Soft-delete a CRM task.
ParameterstaskIdrequired
Search across CRM accounts and contacts by name, email, or phone.
Parameterslimitqueryrequired
list_invoices
List Invoices
List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date.
Parameterssortlimitordersearchstatus
Fetch a single invoice with line items, payment history, and customer detail.
ParametersinvoiceIdrequired
create_invoice
Create Invoice
Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId.
ParametersnotesdueDatecurrencyaccountIdrequiredlineItems
record_invoice_payment
Record Invoice Payment
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.
ParametersnoteamountrequiredmethodrequiredinvoiceIdrequiredreference
mark_invoice_sent
Mark Invoice Sent
Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent.
ParametersinvoiceIdrequired
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.
ParametersinvoiceIdrequired
delete_invoice
Delete Invoice
Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.
ParametersinvoiceIdrequired
restore_invoice
Restore Invoice
Restore a previously deleted DRAFT invoice.
ParametersinvoiceIdrequired
get_invoice_stats
Get Invoice Stats
Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook.
Takes no parameters.
list_event_registrations
List Event Registrations
List registrations for an event in the active company, including CRM account IDs for campaign exclusions.
ParameterslimitoffseteventIdrequiredstatuses
get_event_campaign_exclusions
Get Event Campaign Exclusions
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.
ParameterseventIdrequired
list_subscriptions
List Subscriptions
List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.
Parameterslimitstatus
get_subscription
Get Subscription
Fetch a single subscription with customer, tier, billing cycle, and renewal info.
ParameterssubscriptionIdrequired
create_subscription
Create Subscription
Create a manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing.
ParametersamounttierIdcurrencyaccountIdrequiredautoRenewbillingCyclecurrentPeriodEndcurrentPeriodStart
pause_subscription
Pause Subscription
Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.
ParameterssubscriptionIdrequired
resume_subscription
Resume Subscription
Resume a paused subscription back to active.
ParameterssubscriptionIdrequired
cancel_subscription
Cancel Subscription
Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.
ParameterssubscriptionIdrequired
list_campaigns
List Campaigns
List marketing campaigns (email, SMS, WhatsApp, or push) with delivery stats. Use the returned IDs when excluding recipients of previous campaigns.
Parameterssortlimitordersearchchannel
Get a campaign by ID, including its recipient source, audience exclusions, channel configuration, and delivery stats.
ParameterscampaignIdrequired
create_campaign
Create Campaign
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".
ParametersnamerequiredstatuschannelrequiredsegmentIdscheduledAtrecipientIdschannelConfigrecipientSourceaudienceExclusions
update_campaign
Update Campaign
Update an existing campaign, including audience exclusions. Channel cannot be changed after creation. Pass only fields to change.
ParametersnamestatussegmentIdcampaignIdrequiredscheduledAtrecipientIdschannelConfigrecipientSourceaudienceExclusions
delete_campaign
Delete Campaign
Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.
ParameterscampaignIdrequired
restore_campaign
Restore Campaign
Restore a previously deleted campaign.
ParameterscampaignIdrequired
undo_campaign_send
Undo Campaign Send
Undo a campaign send during its one-minute safety buffer. Use immediately when the merchant says to stop or undo a submitted campaign.
ParameterscampaignIdrequired
validate_campaign
Validate Campaign
Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.
ParameterscampaignIdrequired
list_notification_logs
List Notification Logs
List notification delivery logs for the current company. Recipients are masked by default for incident-response safety.
ParameterslimitdateTostatuschanneldateFromentityIdeventTyperecipient
list_conversations
List Conversations
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.
ParameterspagelimitsearchstatuschannelassigneeassignedToId
list_audit_logs
List Audit Logs
List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range.
ParameterslimitactionsourceuserIdoutcomeresourceresourceIddestructivecreatedAftercreatedBefore
search_audit_logs
Search Audit Logs
Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.
ParameterslimitqueryrequiredcreatedAftercreatedBefore
get_audit_log
Get Audit Log
Fetch a single audit log entry by ID, including before/after snapshots when available.
ParametersauditLogIdrequired
revert_audit_action
Revert Audit Action
Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.
ParametersreasonauditLogIdrequired
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.
ParametersnameentityIdrequiredentityTyperequired
List notes attached to a member/account, booking, or ticket.
ParameterslimitentityIdrequiredentityTyperequired
Add a note to a member/account, booking, ticket, or invoice.
ParametersbodyrequiredentityIdrequiredisPinnedentityTyperequired
confirm_booking
Confirm Booking
Confirm a pending booking.
ParametersbookingIdrequired
cancel_booking
Cancel Booking
Cancel a booking and create a durable refund receipt. Uses the merchant refund setting unless refundMethod is provided.
ParametersreasonbookingIdrequiredrefundMethodidempotencyKeyrequired
complete_booking
Complete Booking
Mark a booking as completed. Triggers commission calculation if configured.
ParametersbookingIdrequired
Mark a booking as no-show when the customer did not attend.
ParametersbookingIdrequired
list_promotions
List Promotions
List promotion/coupon codes with optional status filter.
Parameterslimitsearchstatus
get_promotion
Get Promotion
Get details of a specific promotion/coupon code.
ParameterspromotionIdrequired
create_promotion
Create Promotion
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.
ParameterscoderequirednamerequiredtypevaluerequiredendsAtstatusstartsAtposEnableddescriptioneventEnabledminimumAmountonlineEnabled+5 more
update_promotion
Update Promotion
Update an existing promotion. Pass only the fields you want to change.
ParameterscodenametypevalueendsAtstatusstartsAtpromotionIdrequiredusageLimitTotalusageLimitPerCustomer
delete_promotion
Delete Promotion
Delete a promotion. Past usage records are preserved.
ParameterspromotionIdrequired
restore_promotion
Restore Promotion
Restore a previously deleted promotion.
ParameterspromotionIdrequired
validate_promotion
Validate Promotion
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.
ParametersamountrequiredchannelrequiredaccountIdpromotionCoderequired
list_reward_schemes
List Reward Schemes
List loyalty reward schemes (points/stamps programs) configured for this business.
Parameterslimitsearch
List staff/team members in the business.
Parameterslimit
list_resources
List Resources
List booking resources (rooms, equipment, etc.).
Parameterslimit
list_service_packages
List Service Packages
List service packages/prepaid session bundles with optional search, status, sorting, and pagination.
Parameterssortlimitordersearchstatus
get_service_package
Get Service Package
Get service package detail including applicability and selected booking service/event items.
ParameterspackageIdrequired
create_service_package
Create Service Package
Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.
ParametersnamerequiredpricerequiredstatusvalidDaysrequireddescriptionsessionCountrequiredapplicableTypeapplicableItems
update_service_package
Update Service Package
Update an existing service package. Pass only the fields you want to change.
ParametersnamepricestatuspackageIdrequiredvalidDaysdescriptionsessionCountapplicableTypeapplicableItems
delete_service_package
Delete Service Package
Delete a service package by ID.
ParameterspackageIdrequired
restore_service_package
Restore Service Package
Restore a previously deleted service package by ID.
ParameterspackageIdrequired
get_plan_status
Get Plan Status
Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed.
Takes no parameters.
check_plan_operation
Check Plan Operation
Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.
ParametersdeltatoolNamequotaCodemoduleCode
list_plan_options
List Plan Options
List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.
Takes no parameters.
create_plan_upgrade_link
Create Plan Upgrade Link
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.
ParametersplanIdconfirmplanCodereturnUrlbillingCycle
create_team_member_invite
Create Team Member Invite
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.
ParametersnameroleemailrequiredmodulespermissionsexpiresInHours
accept_team_invite_request
Accept Team Invite — Request Code
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.
Parameterstokenrequired
accept_team_invite_verify
Accept Team Invite — Verify Code
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.
Parameterscoderequirednametokenrequired
get_whatsapp_connection_status
Get Whatsapp Connection Status
Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.
Takes no parameters.
create_whatsapp_connect_link
Create WhatsApp Connect Link
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.
ParametersttlMinutesonboardingMode
list_my_companies
List My Companies
List all companies/organisations the current user has access to. Use this to see available orgs before switching.
Takes no parameters.
switch_company
Switch Company
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.
ParameterscompanyIdrequired
List CMS posts (blog posts and/or pages) with optional filters.
Parameterstypelimitsearchstatus
Get detailed CMS post including content blocks, categories, and tags.
ParameterspostIdrequired
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.
ParametersmetaslugtyperequiredtitlerequiredblocksstatustagIdsexcerptparentIdseoTitlesortOrdervisibility+4 more
Update an existing CMS post (any post type). Only provided fields are changed.
ParametersmetaslugtypetitleblockspostIdrequiredstatustagIdsexcerptparentIdseoTitlesortOrder+5 more
Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.
ParameterspostIdrequired
Restore a previously deleted CMS post.
ParameterspostIdrequired
list_image_models
List Image Models
List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a `modelCode` for `generate_post_cover`.
Takes no parameters.
generate_image
Generate Image
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.
ParametersseedpromptrequiredmodelCoderequiredaspectRatiopollTimeoutMsnegativePromptpollIntervalMs
generate_post_cover
Generate Post Cover
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.
ParametersseedpostIdrequiredpromptrequiredmodelCoderequiredaspectRatiopollTimeoutMsnegativePromptpollIntervalMs
attach_post_cover_from_job
Attach Post Cover From Job
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.
ParametersjobIdrequiredpostIdrequiredassetIndexpollIfRunningpollTimeoutMs
upload_post_cover_from_url
Upload Post Cover From Url
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.
ParameterspostIdrequiredsourceUrlrequired
list_categories
List Categories
List CMS post categories.
Takes no parameters.
create_category
Create Category
Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat.
ParametersnamerequiredslugsortOrderdescription
update_category
Update Category
Update a CMS post category.
ParametersnameslugsortOrdercategoryIdrequireddescription
delete_category
Delete Category
Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.
ParameterscategoryIdrequired
restore_category
Restore Category
Restore a previously deleted CMS post category.
ParameterscategoryIdrequired
list_post_types
List Post Types
List all post types defined for this company (built-in: blog_post, page; plus any custom types).
Takes no parameters.
create_post_type
Create Post Type
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.
ParametersiconslugrequiredlabelrequiredsortOrderlabelPluralrequiredsupportsBlockssupportsExcerptsupportsNestingsupportsCategoriessupportsFeaturedImage
list_post_type_fields
List Post Type Fields
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.
ParameterspostTypeIdrequired
create_post_type_field
Create Post Type Field
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.
ParameterskeylabelrequiredfieldsoptionshelpTextrequiredfieldTyperequiredsortOrderpostTypeIdrequired
update_post_type
Update Post Type
Update a custom post type. Built-in types (blog_post, page) cannot be modified.
ParametersiconlabelsortOrderpostTypeIdrequiredlabelPluralsupportsBlockssupportsExcerptsupportsNestingsupportsCategoriessupportsFeaturedImage
delete_post_type
Delete Post Type
Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.
ParameterspostTypeIdrequired
restore_post_type
Restore Post Type
Restore a previously deleted custom post type.
ParameterspostTypeIdrequired
update_post_type_field
Update Post Type Field
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.
ParametersforcelabelfieldsfieldIdrequiredoptionshelpTextrequiredfieldTypesortOrderpostTypeIdrequired
delete_post_type_field
Delete Post Type Field
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).
ParametersforcefieldIdrequiredpostTypeIdrequired
restore_post_type_field
Restore Post Type Field
Restore a previously deleted field on a post type schema.
ParametersfieldIdrequiredpostTypeIdrequired
reorder_post_type_fields
Reorder Post Type Fields
Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match.
ParameterspostTypeIdrequiredorderedFieldIdsrequired
append_post_block
Append Post Block
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.
ParametersblocksrequiredpostIdrequired
replace_post_block
Replace Post Block
Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post.
ParametersblockrequiredindexrequiredpostIdrequired
remove_post_block
Remove Post Block
Remove the block at the given index (0-based). All subsequent blocks shift up by one.
ParametersindexrequiredpostIdrequired
reorder_post_blocks
Reorder Post Blocks
Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once.
ParameterspostIdrequiredorderedBlockIdsrequired
create_booking
Create Booking
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.
ParametersnotesendTimerequiredstaffIdaccountIdrequiredserviceIdrequiredstartTimerequiredresourceIdbookingDaterequired
get_conversation_messages
Get Conversation Messages
Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.
ParameterspagelimitsearchconversationIdrequired
find_or_create_workroom_thread
Find Or Create Workroom Thread
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.
ParameterstitleuserIdagentIdrequired
get_attachment_text
Get Attachment Text
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.
ParametersattachmentIdrequired
post_workroom_message
Post Workroom Message
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.
ParametersagentIdrequiredcontentrequiredmetadatathreadIdrequired
create_inbox_reply_suggestion
Create Inbox Reply Suggestion
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.
ParametersbodyrequiredagentIdrequiredsubjectmetadataconversationIdrequiredsourceMessageId
request_send_approval
Request Send Approval
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.
ParametersagentIdrequiredpayloadrequiredsummaryrequiredthreadIdrequiredactionTyperequired
list_segments
List Segments
List customer segments. Segments group members by criteria for targeted campaigns.
Parameterslimitsearch
Get customer segment details including type, criteria, and live member count.
ParameterssegmentIdrequired
get_segment_members
Get Segment Members
Get the members that belong to a specific segment.
ParameterslimitsegmentIdrequired
create_segment
Create Segment
Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering.
ParametersnamerequiredcriteriadescriptionsegmentType
update_segment
Update Segment
Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.
ParametersnamecriteriasegmentIdrequireddescriptionsegmentType
preview_segment_count
Preview Segment Count
Preview how many customers would match dynamic segment criteria before creating or updating a segment.
Parameterscriteria
set_segment_members
Set Segment Members
Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC.
ParameterssegmentIdrequiredaccountIdsrequired
delete_segment
Delete Segment
Delete a customer segment.
ParameterssegmentIdrequired
list_templates
List Templates
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.
Parameterslimit
create_template
Create Template
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.
ParametersnamerequiredfootermessagerequiredcategoryrequiredlanguageheaderTextvariableSamples
List shop outlets/locations for the company.
ParametersactiveOnly