Connection check
verified live · 27h ago
favcrm
Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.
Tools
230
GitHub stars
—
Installs / wk
—
Licence
MIT
Transport
streamable-http
Last checked
27h ago
Tools & capabilities
230 toolsRead from the running server on 27h ago.
accept_team_invite_request
token*
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… 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.
accept_team_invite_verify
code*nametoken*
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. 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.
add_knowledge_text
name*content*
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. St… 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.
append_post_block
blocks*postId*
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,… 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.
archive_survey
can modify data
surveyId*
Archive a survey and remove it from active survey lists. Archive a survey and remove it from active survey lists.
assign_staff_to_service
userId*serviceId*
Assign a staff member to a booking service. Pass users.id from list_staff.userId. Assign a staff member to a booking service. Pass users.id from list_staff.userId.
attach_post_cover_from_job
jobId*postId*assetIndexpollIfRunningpollTimeoutMs
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 acros… 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.
attach_tags
tagId*accountIds*
Attach one or more tags to a member/account. Useful for segmenting members after filtering. Attach one or more tags to a member/account. Useful for segmenting members after filtering.
cancel_booking
can modify data
reasonbookingId*refundMethodidempotencyKey*
Cancel a booking and create a durable refund receipt. Uses the merchant refund setting unless refundMethod is provided. Cancel a booking and create a durable refund receipt. Uses the merchant refund setting unless refundMethod is provided.
cancel_subscription
can modify data
subscriptionId*
Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end. Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.
check_plan_operation
read-only
deltatoolNamequotaCodemoduleCode
Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode. Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.
clone
nameentityId*entityType*
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. 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.
commit_customer_import
rows*sessionId*
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. 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.
complete_booking
bookingId*
Mark a booking as completed. Triggers commission calculation if configured. Mark a booking as completed. Triggers commission calculation if configured.
confirm_booking
bookingId*
Confirm a pending booking. Confirm a pending booking.
convert_lead
dealNameaccountId*dealStagelifeStagecreateDealdealAmount
+1
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… 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.
copy_service_tier_pricing
serviceId*sourceTierId*targetTierId*
Copy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service. Copy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service.
create_account
name*typeemailnotesphonesource
+7
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. 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.
create_booking
notesendTime*staffIdaccountId*serviceId*startTime*
+2
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. 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.
create_broadcast
name*channeltemplateIdscheduledAtrecipientFilter
Create a DRAFT WhatsApp or SMS broadcast campaign. The broadcast is NOT sent — admin must review and send it from the Broadcasts page. Create a DRAFT WhatsApp or SMS broadcast campaign. The broadcast is NOT sent — admin must review and send it from the Broadcasts page.
create_campaign
name*statuschannel*segmentIdscheduledAtrecipientIds
+3
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 su… 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".
create_category
name*slugsortOrderdescription
Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat. Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat.
create_contact
name*emailphonejobTitleaccountId*isPrimary
Create a contact on an existing CRM account. Create a contact on an existing CRM account.
create_custom_field
optionsfieldName*fieldType*sortOrderentityType*fieldLabel*
+1
Create a custom field definition for CRM entities. Use options for select or multiselect fields. Create a custom field definition for CRM entities. Use options for select or multiselect fields.
create_deal
name*stageamountownerIddealTypeaccountId
+4
Create a CRM sales pipeline deal, optionally linked to a customer account and contact. Create a CRM sales pipeline deal, optionally linked to a customer account and contact.
create_inbox_reply_suggestion
body*agentId*subjectmetadataconversationId*sourceMessageId
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 c… 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.
create_invoice
notesdueDatecurrencyaccountId*lineItems
Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId. Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId.
create_note
body*entityId*isPinnedentityType*
Add a note to a member/account, booking, ticket, or invoice. Add a note to a member/account, booking, ticket, or invoice.
create_offer_rule
name*type*productsdescriptiontriggerType*triggerConfig
Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts. Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts.
create_outlet
idname*phoneaddresslogoUrlisActive
+4
Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration. Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration.
create_plan_upgrade_link
planIdconfirmplanCodereturnUrlbillingCycle
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 o… 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.
create_post
metaslugtype*title*blocksstatus
+10
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 = p… 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.
create_post_type
iconslug*label*sortOrderlabelPlural*supportsBlocks
+4
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 struc… 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.
create_post_type_field
keylabel*fieldsoptionshelpTextrequired
+3
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 r… 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.
create_product
skuname*price*categoryIdsdescriptionmemberPrice
+2
Create a new shop product as DRAFT. Merchant can review and activate from the portal. Create a new shop product as DRAFT. Merchant can review and activate from the portal.
create_product_category
name*parentIdsortOrderdescriptiononlineEnabled
Create a product category. Use parentId to create subcategories under an existing category. Create a product category. Use parentId to create subcategories under an existing category.
create_promotion
code*name*typevalue*endsAtstatus
+11
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. 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.
create_resource
name*type*statuscapacitydescription
Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true. Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true.
create_segment
name*criteriadescriptionsegmentType
Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering. Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering.
create_service
name*typepricestatuscapacitycurrency
+14
Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category. Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category.
create_service_category
name*sortOrderdescription
Create a service category (e.g. "Treatments", "Classes") to group bookable services. Create a service category (e.g. "Treatments", "Classes") to group bookable services.
create_service_package
name*price*statusvalidDays*descriptionsessionCount*
+2
Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events. Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.
create_service_schedule
date*notesendTime*staffIdbyWeekdayserviceId*
+6
Create a bookable schedule window for a service, including recurring weekly/daily availability. Create a bookable schedule window for a service, including recurring weekly/daily availability.
create_subscription
amounttierIdcurrencyaccountId*autoRenewbillingCycle
+2
Create a manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing. Create a manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing.
create_survey
slugtitle*openAtstatuscloseAtsettings
+3
Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access. Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.
create_survey_invitation
channelmetadatasurveyId*accountIdcontactIdexpiresAt
+3
Create a token-auth survey invitation for a specific member/account or contact. Create a token-auth survey invitation for a specific member/account or contact.
create_tag
name*color
Create a CRM tag for customer segmentation and organization. Create a CRM tag for customer segmentation and organization.
create_task
title*statusdueDatepriorityaccountIdassigneeId
+1
Create a task. Optionally link to a CRM account or assign to a team member. Create a task. Optionally link to a CRM account or assign to a team member.
create_team_member_invite
nameroleemail*modulespermissionsexpiresInHours
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_ve… 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.
create_template
name*footermessage*category*languageheaderText
+1
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 N… 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.
create_ticket
sourcesubject*categorypriorityaccountIdcontactName
+3
Create a support ticket for a member issue. Create a support ticket for a member issue.
create_variation
skunameprice*productId*memberPricestockStatus
+3
Add a variation (size, color, etc.) to an existing product. Add a variation (size, color, etc.) to an existing product.
create_whatsapp_connect_link
ttlMinutesonboardingMode
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 nu… 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.
delete_account
can modify data
accountId*
Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit. Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.
delete_campaign
can modify data
campaignId*
Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history. Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.
delete_category
can modify data
categoryId*
Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked. Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.
delete_contact
can modify data
contactId*
Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead. Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.
delete_custom_field
can modify data
definitionId*
Delete a custom field definition and its stored values. Delete a custom field definition and its stored values.
delete_deal
can modify data
dealId*
Soft-delete a CRM deal from the sales pipeline. Soft-delete a CRM deal from the sales pipeline.
delete_invoice
can modify data
invoiceId*
Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice. Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.
delete_knowledge_document
can modify data
documentId*
Soft-delete a knowledge document. The agent loses access immediately, but the document can be restored with restore_knowledge_document. Soft-delete a knowledge document. The agent loses access immediately, but the document can be restored with restore_knowledge_document.
delete_post
can modify data
postId*
Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post. Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.
delete_post_type
can modify data
postTypeId*
Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first. Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.
delete_post_type_field
can modify data
forcefieldId*postTypeId*
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). 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).
delete_promotion
can modify data
promotionId*
Delete a promotion. Past usage records are preserved. Delete a promotion. Past usage records are preserved.
delete_segment
can modify data
segmentId*
Delete a customer segment. Delete a customer segment.
delete_service_package
can modify data
packageId*
Delete a service package by ID. Delete a service package by ID.
delete_tag
can modify data
tagId*
Delete a CRM tag and remove it from all tagged entities. Delete a CRM tag and remove it from all tagged entities.
delete_task
can modify data
taskId*
Soft-delete a CRM task. Soft-delete a CRM task.
detach_tags
can modify data
tagId*accountIds*
Detach one tag from one or more member/account records. Detach one tag from one or more member/account records.
earn_loyalty_points
field*amount*reasonaccountId*
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. 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.
enrol_membership
tierIdaccountId*expiresAt
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. 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.
execute_tool
can modify data
toolName*arguments
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. 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.
find_or_create_workroom_thread
titleuserIdagentId*
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 pre… 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.
generate_image
seedprompt*modelCode*aspectRatiopollTimeoutMsnegativePrompt
+1
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 —… 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.
generate_post_cover
seedpostId*prompt*modelCode*aspectRatiopollTimeoutMs
+2
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… 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.
get_attachment_text
read-only
attachmentId*
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… 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.
get_audit_log
read-only
auditLogId*
Fetch a single audit log entry by ID, including before/after snapshots when available. Fetch a single audit log entry by ID, including before/after snapshots when available.
get_available_slots
read-only
date*staffIdserviceId*resourceId
Find available booking slots for a service on a specific date. Find available booking slots for a service on a specific date.
get_booking_detail
read-only
bookingId*
Get full booking details including line items, status history, and participants. Get full booking details including line items, status history, and participants.
get_booking_settings
read-only
Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements. Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.
get_booking_stats
read-only
Get booking counts: today, this week, this month, and breakdown by status. Get booking counts: today, this week, this month, and breakdown by status.
get_campaign
read-only
campaignId*
Get a campaign by ID, including its recipient source, audience exclusions, channel configuration, and delivery stats. Get a campaign by ID, including its recipient source, audience exclusions, channel configuration, and delivery stats.
get_contact
read-only
contactId*
Fetch a single contact by ID. Fetch a single contact by ID.
get_conversation_messages
read-only
limitsearchconversationId*
Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact. Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.
get_custom_field
read-only
definitionId*
Get a custom field definition by ID. Get a custom field definition by ID.
get_custom_field_values
read-only
entityId*entityType*
Get custom field values for a CRM entity such as an account, contact, deal, or booking. Get custom field values for a CRM entity such as an account, contact, deal, or booking.
get_dashboard_stats
read-only
Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent. Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.
get_deal
read-only
dealId*
Get detailed CRM deal information by ID. Get detailed CRM deal information by ID.
get_event_campaign_exclusions
read-only
eventId*
Resolve pending, confirmed, and paid event registrations into unique CRM account IDs for campaign exclusions. Pass accountIds to audienceExclusions only when ready=true; cancelled… 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.
get_invoice
read-only
invoiceId*
Fetch a single invoice with line items, payment history, and customer detail. Fetch a single invoice with line items, payment history, and customer detail.
get_invoice_stats
read-only
Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook. Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook.
get_knowledge_document
read-only
documentId*
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 fo… 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.
get_loyalty_balance
read-only
accountId*
Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled. Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled.
get_member_profile
read-only
accountId*
Get detailed profile for a specific member/account by ID. Get detailed profile for a specific member/account by ID.
get_membership_tier
read-only
tierId*
Get a specific membership tier by ID. Get a specific membership tier by ID.
get_offer_rule
read-only
ruleId*
Get offer rule detail including associated products and discounts. Get offer rule detail including associated products and discounts.
get_order
read-only
orderId*
Get full order detail including line items. Get full order detail including line items.
get_plan_status
read-only
Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed. Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed.
get_post
read-only
postId*
Get detailed CMS post including content blocks, categories, and tags. Get detailed CMS post including content blocks, categories, and tags.
get_product
read-only
productId*
Get full product detail including images, options, and variations. Get full product detail including images, options, and variations.
get_promotion
read-only
promotionId*
Get details of a specific promotion/coupon code. Get details of a specific promotion/coupon code.
get_segment
read-only
segmentId*
Get customer segment details including type, criteria, and live member count. Get customer segment details including type, criteria, and live member count.
get_segment_members
read-only
limitsegmentId*
Get the members that belong to a specific segment. Get the members that belong to a specific segment.
get_service_detail
read-only
serviceId*
Get full service details including addons, staff, resources, and tier pricing. Get full service details including addons, staff, resources, and tier pricing.
get_service_package
read-only
packageId*
Get service package detail including applicability and selected booking service/event items. Get service package detail including applicability and selected booking service/event items.
get_service_tier_pricing
read-only
serviceId*
Read every membership-tier pricing configuration for one booking service. Read every membership-tier pricing configuration for one booking service.
get_subscription
read-only
subscriptionId*
Fetch a single subscription with customer, tier, billing cycle, and renewal info. Fetch a single subscription with customer, tier, billing cycle, and renewal info.
get_survey
read-only
surveyId*
Get survey detail, including blocks, publishing status, visibility, settings, and response count. Get survey detail, including blocks, publishing status, visibility, settings, and response count.
get_survey_responses
read-only
limitsurveyId*
List responses for a survey. List responses for a survey.
get_survey_stats
read-only
surveyId*
Get response and invitation metrics for a survey overview dashboard. Get response and invitation metrics for a survey overview dashboard.
get_task
read-only
taskId*
Get detailed task information by ID. Get detailed task information by ID.
get_ticket_stats
read-only
Get ticket counts grouped by status. Get ticket counts grouped by status.
get_whatsapp_connection_status
read-only
Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state. Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.
issue_rewards
expiresAtmemberIds*giftOfferId*
Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs. Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs.
link_resource_to_service
serviceId*resourceId*
Link a room/resource to a booking service. Link a room/resource to a booking service.
list_audit_logs
read-only
limitactionsourceuserIdoutcomeresource
+4
List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range. List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range.
list_bookings
read-only
limitdateTostatusstaffIddateFromaccountId
+1
List bookings with filters for date range, status, service, staff, or member. List bookings with filters for date range, status, service, staff, or member.
list_campaigns
read-only
sortlimitordersearchchannel
List marketing campaigns (email, SMS, WhatsApp, or push) with delivery stats. Use the returned IDs when excluding recipients of previous campaigns. List marketing campaigns (email, SMS, WhatsApp, or push) with delivery stats. Use the returned IDs when excluding recipients of previous campaigns.
list_categories
read-only
List CMS post categories. List CMS post categories.
list_contacts
read-only
limitsearchaccountId
List contacts (people linked to CRM accounts), optionally filtered by account or search. List contacts (people linked to CRM accounts), optionally filtered by account or search.
list_conversations
read-only
limitsearchstatuschannel
List messaging conversations across WhatsApp, Messenger, Instagram, Threads, SMS, email, and other enabled channels. Threads items are public conversations. Shows unread counts and… 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.
list_custom_fields
read-only
entityType*
List custom field definitions for CRM entities such as account, contact, deal, or booking. List custom field definitions for CRM entities such as account, contact, deal, or booking.
list_deals
read-only
pagelimitstagesearchdealTypeaccountId
List CRM deals (sales pipeline) with optional filters. List CRM deals (sales pipeline) with optional filters.
list_event_registrations
read-only
limitoffseteventId*statuses
List registrations for an event in the active company, including CRM account IDs for campaign exclusions. List registrations for an event in the active company, including CRM account IDs for campaign exclusions.
list_image_models
read-only
List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a `modelCode` for `generate_post_cover`. List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a `modelCode` for `generate_post_cover`.
list_invoices
read-only
sortlimitordersearchstatus
List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date. List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date.
list_knowledge_documents
read-only
limitupdatedAfter
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 co… 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.
list_my_companies
read-only
List all companies/organisations the current user has access to. Use this to see available orgs before switching. List all companies/organisations the current user has access to. Use this to see available orgs before switching.
list_notes
read-only
limitentityId*entityType*
List notes attached to a member/account, booking, or ticket. List notes attached to a member/account, booking, or ticket.
list_notification_logs
read-only
limitdateTostatuschanneldateFromentityId
+2
List notification delivery logs for the current company. Recipients are masked by default for incident-response safety. List notification delivery logs for the current company. Recipients are masked by default for incident-response safety.
list_offer_rules
read-only
typelimitstatus
List upsell/cross-sell offer rules with optional filters. List upsell/cross-sell offer rules with optional filters.
list_orders
read-only
limitsearchstatus
List shop orders with optional status and search filters. List shop orders with optional status and search filters.
list_outlets
read-only
activeOnly
List shop outlets/locations for the company. List shop outlets/locations for the company.
list_plan_options
read-only
List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan. List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.
list_posts
read-only
typelimitsearchstatus
List CMS posts (blog posts and/or pages) with optional filters. List CMS posts (blog posts and/or pages) with optional filters.
list_post_type_fields
read-only
postTypeId*
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. 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.
list_post_types
read-only
List all post types defined for this company (built-in: blog_post, page; plus any custom types). List all post types defined for this company (built-in: blog_post, page; plus any custom types).
list_product_categories
read-only
List all product categories for the shop. List all product categories for the shop.
list_products
read-only
limitsearchstatuscategoryId
List shop products with optional filters by name, status, or category. List shop products with optional filters by name, status, or category.
list_promotions
read-only
limitsearchstatus
List promotion/coupon codes with optional status filter. List promotion/coupon codes with optional status filter.
list_resources
read-only
limit
List booking resources (rooms, equipment, etc.). List booking resources (rooms, equipment, etc.).
list_reward_schemes
read-only
limitsearch
List loyalty reward schemes (points/stamps programs) configured for this business. List loyalty reward schemes (points/stamps programs) configured for this business.
list_segments
read-only
limitsearch
List customer segments. Segments group members by criteria for targeted campaigns. List customer segments. Segments group members by criteria for targeted campaigns.
list_service_categories
read-only
List service categories (groups for booking services like "Treatments", "Classes"). List service categories (groups for booking services like "Treatments", "Classes").
list_service_packages
read-only
sortlimitordersearchstatus
List service packages/prepaid session bundles with optional search, status, sorting, and pagination. List service packages/prepaid session bundles with optional search, status, sorting, and pagination.
list_services
read-only
limitsearchstatus
List booking services with name, price, duration, and status. List booking services with name, price, duration, and status.
list_service_schedules
read-only
limitdateTostaffIddateFromserviceIdisOverride
+1
List schedule windows for booking services. List schedule windows for booking services.
list_shipping_methods
read-only
List all shipping methods configured for the shop. List all shipping methods configured for the shop.
list_staff
read-only
limit
List staff/team members in the business. List staff/team members in the business.
list_subscriptions
read-only
limitstatus
List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions. List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.
list_survey_invitations
read-only
limitsurveyId*
List survey invitation history without exposing token hashes or old invitation tokens. List survey invitation history without exposing token hashes or old invitation tokens.
list_surveys
read-only
limitsearchstatus
List surveys with optional status/search filters. List surveys with optional status/search filters.
list_survey_workflows
read-only
surveyId*
List automation workflows attached to a survey. List automation workflows attached to a survey.
list_tags
read-only
search
List all available tags for the merchant. List all available tags for the merchant.
list_tasks
read-only
limitstatusaccountIdassigneeId
List tasks with optional status, assignee, and account filters. List tasks with optional status, assignee, and account filters.
list_templates
read-only
limit
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… 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.
list_tickets
read-only
limitsearchstatuscategorypriorityaccountId
List support tickets with optional filters. List support tickets with optional filters.
list_tiers
read-only
List all membership tiers with member counts and stats. List all membership tiers with member counts and stats.
mark_deal_lost
dealId*reason*
Mark a CRM deal as lost. Requires a lost reason. Mark a CRM deal as lost. Requires a lost reason.
mark_deal_won
dealId*closingDate
Mark a CRM deal as won and set close date. Mark a CRM deal as won and set close date.
mark_invoice_sent
invoiceId*
Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent. Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent.
mark_no_show
bookingId*
Mark a booking as no-show when the customer did not attend. Mark a booking as no-show when the customer did not attend.
pause_subscription
subscriptionId*
Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate. Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.
post_workroom_message
agentId*content*metadatathreadId*
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. T… 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.
preview_customer_import
rows*filename
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_im… 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.
preview_segment_count
read-only
criteria
Preview how many customers would match dynamic segment criteria before creating or updating a segment. Preview how many customers would match dynamic segment criteria before creating or updating a segment.
query_company_knowledge
read-only
limitquery*maxSnippetChars
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 uploa… 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.
query_favcrm_platform
read-only
arealimitquery*
Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform. Use before guessing tool names or JSON arguments. Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform. Use before guessing tool names or JSON arguments.
record_invoice_payment
noteamount*method*invoiceId*reference
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. 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.
register_organisation_request
email*countryindustrytimezoneorganisationName*
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.… 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.
register_organisation_verify
code*requestId*
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 M… 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.
remove_post_block
can modify data
index*postId*
Remove the block at the given index (0-based). All subsequent blocks shift up by one. Remove the block at the given index (0-based). All subsequent blocks shift up by one.
reorder_post_blocks
postId*orderedBlockIds*
Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once. Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once.
reorder_post_type_fields
postTypeId*orderedFieldIds*
Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match. Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match.
replace_post_block
block*index*postId*
Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post. Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post.
report_agent_issue
area*logstitle*severity*toolCallsaiAnalysis*
+7
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 c… 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.
request_send_approval
agentId*payload*summary*threadId*actionType*
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 dire… 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.
restore_campaign
campaignId*
Restore a previously deleted campaign. Restore a previously deleted campaign.
restore_category
categoryId*
Restore a previously deleted CMS post category. Restore a previously deleted CMS post category.
restore_invoice
invoiceId*
Restore a previously deleted DRAFT invoice. Restore a previously deleted DRAFT invoice.
restore_knowledge_document
documentId*
Restore a previously deleted knowledge document. Restore a previously deleted knowledge document.
restore_post
postId*
Restore a previously deleted CMS post. Restore a previously deleted CMS post.
restore_post_type
postTypeId*
Restore a previously deleted custom post type. Restore a previously deleted custom post type.
restore_post_type_field
fieldId*postTypeId*
Restore a previously deleted field on a post type schema. Restore a previously deleted field on a post type schema.
restore_promotion
promotionId*
Restore a previously deleted promotion. Restore a previously deleted promotion.
restore_service_package
packageId*
Restore a previously deleted service package by ID. Restore a previously deleted service package by ID.
resume_subscription
subscriptionId*
Resume a paused subscription back to active. Resume a paused subscription back to active.
revert_audit_action
can modify data
reasonauditLogId*
Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots. Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.
scrape_knowledge_url
url*
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… 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.
search_audit_logs
read-only
limitquery*createdAftercreatedBefore
Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON. Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.
search_crm
read-only
limitquery*
Search across CRM accounts and contacts by name, email, or phone. Search across CRM accounts and contacts by name, email, or phone.
search_members
read-only
sortlimitordersearchsourcetagIds
+12
Search and filter members/accounts. Supports text search, date ranges, booking/activity history, membership tier, tags, and more. Use lastBookingBefore/inactiveDays to find inactiv… 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.
search_tools
read-only
limitqueryscopewriteincludeInputSchema
Search the available FavCRM tool catalog for relevant operations. Use this when the curated direct tool list does not contain the operation you need. Search the available FavCRM tool catalog for relevant operations. Use this when the curated direct tool list does not contain the operation you need.
set_custom_field_values
values*entityId*entityType*
Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value. Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value.
set_primary_contact
contactId*
Set a contact as the primary contact for its CRM account and demote other contacts on that account. Set a contact as the primary contact for its CRM account and demote other contacts on that account.
set_resource_availability
datetypeendTime*dayOfWeekstartTime*resourceId*
+1
Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks. Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.
set_segment_members
segmentId*accountIds*
Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC. Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC.
set_service_tier_pricing
tierId*serviceId*bookingLimits*priceOverride*discountPercent*timeSlotPricing*
+1
Set the complete pricing and booking-policy configuration for one membership tier on a booking service. Set the complete pricing and booking-policy configuration for one membership tier on a booking service.
set_staff_availability
datetypeendTime*memberId*dayOfWeekstartTime*
+1
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. 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.
switch_company
companyId*
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.… 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.
undo_campaign_send
campaignId*
Undo a campaign send during its one-minute safety buffer. Use immediately when the merchant says to stop or undo a submitted campaign. Undo a campaign send during its one-minute safety buffer. Use immediately when the merchant says to stop or undo a submitted campaign.
update_account
nametypeemailnotesphonegender
+9
Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code. Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.
update_booking_settings
showCouponcalendarStyleshowAccessPasscooldownMessageblockUntilFinishedglobalCooldownDays
+12
Update global booking settings. Pass only the fields you want to change. Update global booking settings. Pass only the fields you want to change.
update_campaign
namestatussegmentIdcampaignId*scheduledAtrecipientIds
+3
Update an existing campaign, including audience exclusions. Channel cannot be changed after creation. Pass only fields to change. Update an existing campaign, including audience exclusions. Channel cannot be changed after creation. Pass only fields to change.
update_category
nameslugsortOrdercategoryId*description
Update a CMS post category. Update a CMS post category.
update_contact
nameemailphonejobTitlecontactId*isPrimary
Update fields on an existing contact. Update fields on an existing contact.
update_custom_field
optionsfieldTypesortOrderfieldLabelisRequireddefinitionId*
Update a custom field definition label, type, options, required flag, or sort order. Update a custom field definition label, type, options, required flag, or sort order.
update_deal
namestageamountdealId*ownerIddealType
+5
Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them. Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.
update_deal_stage
stage*dealId*lostReasonprobability
Move a deal to a different pipeline stage. Move a deal to a different pipeline stage.
update_order_status
status*orderId*
Update the status of a shop order (e.g. confirm, ship, cancel). Update the status of a shop order (e.g. confirm, ship, cancel).
update_outlet
id*namephoneaddresslogoUrlisActive
+4
Update an existing shop outlet/location by ID. Update an existing shop outlet/location by ID.
update_post
metaslugtypetitleblockspostId*
+11
Update an existing CMS post (any post type). Only provided fields are changed. Update an existing CMS post (any post type). Only provided fields are changed.
update_post_type
iconlabelsortOrderpostTypeId*labelPluralsupportsBlocks
+4
Update a custom post type. Built-in types (blog_post, page) cannot be modified. Update a custom post type. Built-in types (blog_post, page) cannot be modified.
update_post_type_field
forcelabelfieldsfieldId*optionshelpText
+4
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. 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.
update_product
skunamepricestatusproductId*categoryIds
+3
Update an existing product. Only provided fields are changed. Update an existing product. Only provided fields are changed.
update_promotion
codenametypevalueendsAtstatus
+4
Update an existing promotion. Pass only the fields you want to change. Update an existing promotion. Pass only the fields you want to change.
update_segment
namecriteriasegmentId*descriptionsegmentType
Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules. Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.
update_service
namepricestatuscapacityserviceId*categoryId
+11
Update an existing booking service. Pass only the fields you want to change. Update an existing booking service. Pass only the fields you want to change.
update_service_package
namepricestatuspackageId*validDaysdescription
+3
Update an existing service package. Pass only the fields you want to change. Update an existing service package. Pass only the fields you want to change.
update_service_schedule
datenotesendTimestaffIdbyWeekdaystartTime
+6
Update a service schedule window. Pass only fields to change. Update a service schedule window. Pass only fields to change.
update_survey
slugtitleopenAtstatuscloseAtsettings
+4
Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list. Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.
update_tag
namecolortagId*
Rename or recolor an existing CRM tag. Rename or recolor an existing CRM tag.
update_task
titlestatustaskId*dueDatepriorityassigneeId
+1
Update a task (status, priority, assignee, due date, completion). Update a task (status, priority, assignee, due date, completion).
update_ticket_status
status*ticketId*
Update the status of an existing support ticket. Update the status of an existing support ticket.
upload_post_cover_from_url
postId*sourceUrl*
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). Validat… 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.
upsert_survey_workflow
name*graph*statustriggersurveyId*workflowId
Create or update a survey automation workflow, usually triggered by survey_response_submitted. Create or update a survey automation workflow, usually triggered by survey_response_submitted.
validate_campaign
read-only
campaignId*
Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending. Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.
validate_promotion
read-only
amount*channel*accountIdpromotionCode*
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. 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.
void_invoice
can modify data
invoiceId*