FavCRM
REMOTE · API.FAVCRM.IO · SCANNED AUG 4
Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability85
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 18916 tokens (~82/item across 228 items; 223 tools + 5 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management30
- Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · api.favcrm.io
claude mcp add --transport http io-favcrm-favcrm https://api.favcrm.io/mcp
[mcp_servers.io-favcrm-favcrm] url = "https://api.favcrm.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"io-favcrm-favcrm": {
"type": "remote",
"url": "https://api.favcrm.io/mcp",
"enabled": true
}
}
} openclaw mcp add io-favcrm-favcrm --url https://api.favcrm.io/mcp --transport streamable-http
mcp_servers:
io-favcrm-favcrm:
url: "https://api.favcrm.io/mcp" {
"mcpServers": {
"io-favcrm-favcrm": {
"type": "http",
"url": "https://api.favcrm.io/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +4
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 74
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Aug 2026 · Probed https://api.favcrm.io/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=favcrm.io | CN=WE1,O=Google Trust Services,C=US | 13 Jun 2026 | 11 Sept 2026 | ECDSA 256 | ECDSA-SHA256 | 8b36e4b5d46a89d8137da5f9739177d7 |
| SANs: favcrm.io, api.favcrm.io, *.api.favcrm.io | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC insecure
Validation of api.favcrm.io. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| io. | present | 57355 | 8 | Verified |
| favcrm.io. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Challenged, unverified
The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.
| Result | Challenged, unverified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000 |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | no-referrer |
Protected resource metadata
| Retrieved | No |
|---|---|
| Problem | no_resource_metadata |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.favcrm.io/mcp | Verified | 200 | |
| http (plaintext) | http://api.favcrm.io/mcp | HTTPS enforced | 301 | https://api.favcrm.io/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
switch_company ~65
Switch the current session to a different company/organisation. Returns a new access token scoped to the target company. All subsequent tool calls will operate on the new company.
| Name | Type | Req | Description |
|---|---|---|---|
| companyId | string | yes | The company ID to switch to (use list_my_companies to find available IDs) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_account ~208
Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The account ID to update |
| assignedTo | — | — | Assigned team member user ID, or null to clear |
| dateOfBirth | — | — | YYYY-MM-DD date of birth, or null to clear |
| string | — | Email address | |
| firstName | — | — | First name for individual accounts |
| gender | string | — | Gender |
| lastName | — | — | Last name for individual accounts |
| lifeStage | string | — | CRM life stage |
| memberCode | — | — | Merchant member code, or null to clear |
| name | string | — | Account/customer display name |
| notes | string | — | Internal notes |
| phone | string | — | Phone number |
| referredByAccountId | — | — | Referrer account ID, or null to clear |
| source | string | — | Acquisition source |
| type | string | — | Account type |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_booking_settings ~298
Update global booking settings. Pass only the fields you want to change.
| Name | Type | Req | Description |
|---|---|---|---|
| allowMemberCancellation | boolean | — | Allow members to cancel bookings from the customer portal |
| blockUntilFinished | boolean | — | Block customers from booking again while they have active bookings |
| bookingReminderEnabled | boolean | — | Send the default pre-booking reminder |
| bookingReminderLeadHours | integer | — | Hours before booking start for the default reminder |
| calendarStyle | string | — | Booking flow calendar presentation |
| cooldownMessage | — | — | Optional message shown when cooldown blocks a booking |
| globalCooldownDays | — | — | Minimum days between customer bookings, or null to disable |
| hideUnavailableTimeslots | boolean | — | Hide unavailable timeslots instead of showing them as full |
| memberCancellationCutoffHours | — | — | Hours before booking start when member cancellation closes, or null for no cutoff |
| minimumAdvanceBookingMinutes | — | — | Minutes before slot start when customer booking closes. null/0 = no cutoff; set > 0 to require advance notice |
| requireBookingConfirmation | boolean | — | Require merchant confirmation before bookings are confirmed |
| sameDayReminderEnabled | boolean | — | Send an additional same-day reminder before booking start |
| sameDayReminderLeadHours | integer | — | Hours before booking start for the same-day reminder |
| showAccessPass | boolean | — | Show access pass/package options in booking flow |
| showCoupon | boolean | — | Show coupon field in booking flow |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_campaign ~131
Update an existing campaign. Channel cannot be changed after creation. Pass only fields to change.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | Campaign ID |
| channelConfig | object | — | For email, use subject + htmlBody + optional plainTextBody. Legacy html is normalized to htmlBody. |
| name | string | — | Name |
| recipientIds | array | — | Explicit recipient user IDs |
| recipientSource | string | — | Recipient source: segment | tier | manual |
| scheduledAt | — | — | Scheduled timestamp (ISO 8601) |
| segmentId | — | — | Segment ID |
| status | string | — | Status filter |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_category ~61
Update a CMS post category.
| Name | Type | Req | Description |
|---|---|---|---|
| categoryId | string | yes | Category ID |
| description | — | — | Description |
| name | string | — | Name |
| slug | string | — | URL slug |
| sortOrder | number | — | Sort order (lower = earlier) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_contact ~75
Update fields on an existing contact.
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | The contact ID |
| string | — | Email address | |
| isPrimary | boolean | — | Mark as the primary contact |
| jobTitle | string | — | Job title |
| name | string | — | Name |
| phone | string | — | Phone number |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_custom_field ~98
Update a custom field definition label, type, options, required flag, or sort order.
| Name | Type | Req | Description |
|---|---|---|---|
| definitionId | string | yes | Custom field definition ID |
| fieldLabel | string | — | Human-readable label |
| fieldType | string | — | Field type |
| isRequired | boolean | — | Whether this field is required |
| options | array | — | Allowed values for select/multiselect fields |
| sortOrder | number | — | Display order |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_deal ~174
Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | — | — | Linked CRM account ID, or null to clear |
| amount | — | — | Deal amount, or null to clear |
| closingDate | — | — | Expected closing date, or null to clear |
| contactId | — | — | Linked contact ID, or null to clear |
| dealId | string | yes | The deal ID |
| dealType | — | — | Deal type/category, or null to clear |
| description | — | — | Deal notes or description, or null to clear |
| name | string | — | Deal name |
| ownerId | — | — | Owner user/team member ID, or null to clear |
| probability | — | — | Win probability, or null to clear |
| stage | — | — | Pipeline stage, or null to clear |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_deal_stage ~66
Move a deal to a different pipeline stage.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The deal ID |
| lostReason | string | — | Required when moving to lost |
| probability | string | — | Optional win probability (percent string) |
| stage | string | yes | New pipeline stage |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_order_status ~47
Update the status of a shop order (e.g. confirm, ship, cancel).
| Name | Type | Req | Description |
|---|---|---|---|
| orderId | string | yes | The order UUID |
| status | string | yes | New order status |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_outlet ~108
Update an existing shop outlet/location by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| acceptsOrders | boolean | — | Whether outlet accepts online orders |
| address | — | — | Street address |
| id | string | yes | Outlet ID (UUID) |
| isActive | boolean | — | Whether outlet is active |
| latitude | — | — | Latitude |
| logoUrl | — | — | Logo URL |
| longitude | — | — | Longitude |
| name | string | — | Outlet name |
| phone | — | — | Contact phone |
| sortOrder | integer | — | Display sort order |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_post ~343
Update an existing CMS post (any post type). Only provided fields are changed.
| Name | Type | Req | Description |
|---|---|---|---|
| blocks | array | — | Replaces the entire ordered block array. Use append_post_block / replace_post_block / remove_post_block / reorder_post_blocks for per-block edits. Each block: { id, version, type, data }. Types: para… |
| categoryIds | array | — | Category IDs |
| excerpt | string | — | Plain-text summary only — never JSON. Omit to leave unchanged. |
| featuredImage | string | — | Cover image URL |
| meta | object | — | Custom field values; merged shallowly with existing meta. Use this for structured data, not excerpt. |
| parentId | — | — | Parent post ID for nested types. |
| postId | string | yes | The post ID |
| publishedAt | — | — | Publish timestamp (ISO 8601) |
| seoDescription | string | — | SEO description override |
| seoTitle | string | — | SEO title override |
| slug | string | — | URL slug (must be unique per company+type). |
| sortOrder | number | — | Sort order (lower = earlier) |
| status | string | — | Post status |
| tagIds | array | — | Tag IDs to sync (replaces existing tags) |
| title | string | — | Post title |
| type | string | — | Change post type (e.g. blog_post → treatment). Slug is re-checked for uniqueness under the new type. |
| visibility | string | — | Visibility |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_post_type ~151
Update a custom post type. Built-in types (blog_post, page) cannot be modified.
| Name | Type | Req | Description |
|---|---|---|---|
| icon | — | — | Icon name or URL |
| label | string | — | Display label |
| labelPlural | string | — | Plural display label |
| postTypeId | string | yes | Post type ID |
| sortOrder | number | — | Sort order (lower = earlier) |
| supportsBlocks | boolean | — | Allow content blocks (rich body) |
| supportsCategories | boolean | — | Allow categories on this post type |
| supportsExcerpt | boolean | — | Allow an excerpt field |
| supportsFeaturedImage | boolean | — | Allow a featured image |
| supportsNesting | boolean | — | Allow parent/child nesting |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_post_type_field ~187
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.
| Name | Type | Req | Description |
|---|---|---|---|
| fieldId | string | yes | Field ID |
| fieldType | string | — | Field type |
| fields | — | — | Child fields for fieldType="repeater". |
| force | boolean | — | Override safety guards. Required to change fieldType or flip required=true on a field that already has data in posts. |
| helpText | — | — | Help text shown next to the input |
| label | string | — | Display label |
| options | — | — | For URL fields, { uploadable: true } enables file upload while preserving a URL string in meta. |
| postTypeId | string | yes | Post type ID |
| required | boolean | — | Whether the field is required |
| sortOrder | number | — | Sort order (lower = earlier) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_product ~119
Update an existing product. Only provided fields are changed.
| Name | Type | Req | Description |
|---|---|---|---|
| categoryIds | array | — | Category IDs (first is primary). Replaces all existing categories. |
| description | string | — | Product description |
| discountPrice | string | — | Discounted price |
| memberPrice | string | — | Members-only price |
| name | string | — | Product name |
| price | string | — | Price as decimal string |
| productId | number | yes | The product ID |
| sku | string | — | SKU code |
| status | string | — | Product status |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_promotion ~132
Update an existing promotion. Pass only the fields you want to change.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | — | Promotion code |
| endsAt | — | — | End timestamp (ISO 8601) |
| name | string | — | Name |
| promotionId | string | yes | Promotion ID |
| startsAt | — | — | Start timestamp (ISO 8601) |
| status | string | — | Status filter |
| type | string | — | Type |
| usageLimitPerCustomer | — | — | Usage limit per customer |
| usageLimitTotal | — | — | Total usage limit across all customers |
| value | string | — | Discount value (numeric or decimal string) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_segment ~87
Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.
| Name | Type | Req | Description |
|---|---|---|---|
| criteria | — | — | Replace dynamic criteria, or null to clear criteria |
| description | string | — | New segment description |
| name | string | — | New segment name |
| segmentId | string | yes | The segment ID to update |
| segmentType | string | — | Change segment type |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_service ~241
Update an existing booking service. Pass only the fields you want to change.
| Name | Type | Req | Description |
|---|---|---|---|
| capacity | number | — | Participants per slot |
| categoryId | — | — | Category ID |
| commissionCurrency | — | — | Commission currency (ISO code) |
| commissionType | — | — | Commission type: "fixed" or "percentage" |
| commissionValue | — | — | Commission amount as decimal string |
| cooldownMinutes | number | — | Cooldown minutes between bookings |
| description | string | — | Description |
| durationMinutes | number | — | Duration of one booking in minutes |
| name | string | — | Name |
| price | string | — | Decimal string, e.g. "80.00" |
| requireLogin | boolean | — | If true, guests cannot book without an account |
| requiresConfirmation | boolean | — | If true, bookings start pending and need explicit confirmation |
| requiresResource | boolean | — | Whether the service requires a resource (room/equipment) |
| requiresStaff | boolean | — | Whether the service requires staff assignment |
| serviceId | string | yes | Service ID to update |
| status | string | — | Status filter |
| visibility | string | — | Visibility: public | members_only | hidden |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_service_package ~139
Update an existing service package. Pass only the fields you want to change.
| Name | Type | Req | Description |
|---|---|---|---|
| applicableItems | array | — | Item IDs the package can be redeemed against |
| applicableType | string | — | What this package applies to: services | products | both |
| description | — | — | Description |
| name | string | — | Name |
| packageId | string | yes | Service package ID to update |
| price | number | — | Decimal string, e.g. "80.00" |
| sessionCount | integer | — | Number of sessions in the package |
| status | string | — | Status filter |
| validDays | integer | — | Validity period in days |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_service_schedule ~183
Update a service schedule window. Pass only fields to change.
| Name | Type | Req | Description |
|---|---|---|---|
| byWeekday | — | — | Weekdays (0=Mon..6=Sun) for weekly recurrence |
| date | string | — | Date (YYYY-MM-DD) |
| endTime | string | — | End time (HH:mm) |
| maxCapacity | number | — | Maximum capacity for this slot |
| notes | — | — | Free-form notes |
| recurrence | string | — | Recurrence rule: none | daily | weekly | monthly |
| recurrenceEndDate | — | — | Recurrence end date (YYYY-MM-DD) |
| recurrenceInterval | number | — | Recurrence interval (e.g. every N weeks) |
| resourceId | — | — | Resource ID (room/equipment) |
| scheduleId | string | yes | Schedule ID |
| staffId | — | — | Staff member ID |
| startTime | string | — | Start time (HH:mm) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_survey ~150
Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.
| Name | Type | Req | Description |
|---|---|---|---|
| closeAt | — | — | Optional ISO datetime when the survey closes |
| description | — | — | Survey description |
| openAt | — | — | Optional ISO datetime when the survey opens |
| questionBlocks | array | — | Ordered survey question blocks |
| settings | object | — | Survey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage |
| slug | string | — | URL slug |
| status | string | — | Survey status |
| surveyId | string | yes | Survey ID |
| title | string | — | Survey title |
| visibility | string | — | Survey access mode |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_tag ~52
Rename or recolor an existing CRM tag.
| Name | Type | Req | Description |
|---|---|---|---|
| color | — | — | New color, or null to clear |
| name | string | — | New tag name |
| tagId | string | yes | The tag ID to update |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_task ~96
Update a task (status, priority, assignee, due date, completion).
| Name | Type | Req | Description |
|---|---|---|---|
| assigneeId | string | — | Assignee user ID |
| description | string | — | Description |
| dueDate | string | — | Due date (ISO 8601) |
| priority | string | — | Priority |
| status | string | — | Status filter |
| taskId | string | yes | The task ID |
| title | string | — | Title |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
update_ticket_status ~40
Update the status of an existing support ticket.
| Name | Type | Req | Description |
|---|---|---|---|
| status | string | yes | New status |
| ticketId | string | yes | The ticket ID to update |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
upload_post_cover_from_url ~115
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.
| Name | Type | Req | Description |
|---|---|---|---|
| postId | string | yes | The post ID |
| sourceUrl | string | yes | Public http(s) URL to fetch the image from. Must respond with an image/* content-type. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
upsert_survey_workflow ~93
Create or update a survey automation workflow, usually triggered by survey_response_submitted.
| Name | Type | Req | Description |
|---|---|---|---|
| graph | object | yes | Workflow graph definition |
| name | string | yes | Workflow name |
| status | string | — | Workflow status |
| surveyId | string | yes | Survey ID |
| trigger | string | — | Trigger name, default from graph.trigger |
| workflowId | string | — | Existing workflow ID when updating |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
validate_campaign ~42
Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | Campaign ID to validate |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
validate_promotion ~105
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | — | Customer account ID — used for per-customer usage limits |
| amount | number | yes | Order subtotal in major units (dollars, not cents) |
| channel | string | yes | Where the promo is being applied |
| promotionCode | string | yes | The code customer entered |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
void_invoice ~55
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.
| Name | Type | Req | Description |
|---|---|---|---|
| invoiceId | string | yes | Invoice ID to void |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.