io.favcrm/favcrm · v1.0.0 · sales-and-crm
FavCRM is healthy: it completed an MCP handshake in 2724 ms and exposes 238 tools.
Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.
Endpoint: https://api.favcrm.io/mcp (streamable-http)
Repository · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 238 |
| Latency | 2724 ms |
| Last checked (UTC) | 2026-10-16T03:40:09.497Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-16T03:40:09.497Z | Healthy | 2724 | |
| 2026-10-15T00:25:48.763Z | Healthy | 3126 |
search_members | Search and filter members/accounts. Supports text search, date ranges, booking/activity history, membership tier, tags, and more. Use lastBookingBefore/inactiveDays to find inactive members. |
get_member_profile | Get detailed profile for a specific member/account by ID. |
preview_customer_import | Preview a bulk customer import (max 2000 rows). Matches existing accounts by phone/email and shows create vs update actions plus points/stamps/credit deltas. Use commit_customer_import with the returned sessionId to apply. |
commit_customer_import | Commit a previewed customer import. Pass the same rows and sessionId returned by preview_customer_import. Creates/updates accounts and applies points, stamps, and credit deltas. |
create_account | Create a CRM account/customer with a primary contact. Optionally enroll the account as a member; use enrol_membership later when the account already exists. |
update_account | Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code. |
delete_account | Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit. |
list_tags | List all available tags for the merchant. |
create_tag | Create a CRM tag for customer segmentation and organization. |
update_tag | Rename or recolor an existing CRM tag. |
delete_tag | Delete a CRM tag and remove it from all tagged entities. |
attach_tags | Attach one or more tags to a member/account. Useful for segmenting members after filtering. |
detach_tags | Detach one tag from one or more member/account records. |
list_tiers | List all membership tiers with member counts and stats. |
get_membership_tier | Get a specific membership tier by ID. |
issue_rewards | Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs. |
enrol_membership | Enrol a member into a membership tier. Free tiers enrol immediately; paid tiers return PAYMENT_REQUIRED unless skipPriceCheck is set. Use list_tiers first to find the target tier. |
get_loyalty_balance | Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled. |
earn_loyalty_points | Credit loyalty points or stamps to a member. Use field="points" for points, "stamps" for stamps. Server records a transaction with the reason as audit context. |
get_dashboard_stats | Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent. |
list_bookings | List bookings with filters for date range, status, service, staff, or member. |
get_booking_detail | Get full booking details including line items, status history, and participants. |
get_booking_stats | Get booking counts: today, this week, this month, and breakdown by status. |
get_available_slots | Find available booking slots for a service on a specific date. |
list_services | List booking services with name, price, duration, and status. |
get_service_detail | Get full service details including addons, staff, resources, and tier pricing. |
get_service_tier_pricing | Read every membership-tier pricing configuration for one booking service. |
set_service_tier_pricing | Set the complete pricing and booking-policy configuration for one membership tier on a booking service. |
copy_service_tier_pricing | Copy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service. |
create_service | Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category. |
update_service | Update an existing booking service. Pass only the fields you want to change. |
create_service_schedule | Create a bookable schedule window for a service, including recurring weekly/daily availability. |
list_service_schedules | List schedule windows for booking services. |
update_service_schedule | Update a service schedule window. Pass only fields to change. |
assign_staff_to_service | Assign a staff member to a booking service. Pass users.id from list_staff.userId. |
link_resource_to_service | Link a room/resource to a booking service. |
list_service_categories | List service categories (groups for booking services like "Treatments", "Classes"). |
create_service_category | Create a service category (e.g. "Treatments", "Classes") to group bookable services. |
create_resource | Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true. |
set_resource_availability | Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks. |
set_staff_availability | Add an availability window for a staff member (companyMembers.id). Use day-of-week + recurring for weekly schedules, or a specific date for one-off changes. |
get_booking_settings | Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements. |
update_booking_settings | Update global booking settings. Pass only the fields you want to change. |
list_tickets | List support tickets with optional filters. |
get_ticket_stats | Get ticket counts grouped by status. |
create_ticket | Create a support ticket for a member issue. |
update_ticket_status | Update the status of an existing support ticket. |
list_surveys | List surveys with optional status/search filters. |
create_survey | Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access. |
get_survey | Get survey detail, including blocks, publishing status, visibility, settings, and response count. |
update_survey | Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list. |
archive_survey | Archive a survey and remove it from active survey lists. |
get_survey_stats | Get response and invitation metrics for a survey overview dashboard. |
get_survey_responses | List responses for a survey. |
list_survey_invitations | List survey invitation history without exposing token hashes or old invitation tokens. |
create_survey_invitation | Create a token-auth survey invitation for a specific member/account or contact. |
list_survey_workflows | List automation workflows attached to a survey. |
upsert_survey_workflow | Create or update a survey automation workflow, usually triggered by survey_response_submitted. |
list_deals | List CRM deals (sales pipeline) with optional filters. |
get_deal | Get detailed CRM deal information by ID. |
create_deal | Create a CRM sales pipeline deal, optionally linked to a customer account and contact. |
update_deal | Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them. |
delete_deal | Soft-delete a CRM deal from the sales pipeline. |
update_deal_stage | Move a deal to a different pipeline stage. |
mark_deal_won | Mark a CRM deal as won and set close date. |
mark_deal_lost | Mark a CRM deal as lost. Requires a lost reason. |
convert_lead | 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. |
list_contacts | List contacts (people linked to CRM accounts), optionally filtered by account or search. |
get_contact | Fetch a single contact by ID. |
create_contact | Create a contact on an existing CRM account. |
update_contact | Update fields on an existing contact. |
set_primary_contact | Set a contact as the primary contact for its CRM account and demote other contacts on that account. |
delete_contact | Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead. |
list_custom_fields | List custom field definitions for CRM entities such as account, contact, deal, or booking. |
get_custom_field | Get a custom field definition by ID. |
create_custom_field | Create a custom field definition for CRM entities. Use options for select or multiselect fields. |
update_custom_field | Update a custom field definition label, type, options, required flag, or sort order. |
delete_custom_field | Delete a custom field definition and its stored values. |
get_custom_field_values | Get custom field values for a CRM entity such as an account, contact, deal, or booking. |
set_custom_field_values | Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value. |
list_tasks | List tasks with optional status, assignee, and account filters. |
get_task | Get detailed task information by ID. |
create_task | Create a task. Optionally link to a CRM account or assign to a team member. |
update_task | Update a task (status, priority, assignee, due date, completion). |
delete_task | Soft-delete a CRM task. |
search_crm | Search across CRM accounts and contacts by name, email, or phone. |
list_invoices | List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date. |
get_invoice | Fetch a single invoice with line items, payment history, and customer detail. |
create_invoice | Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId. |
record_invoice_payment | Record a manual payment against an invoice (cash, bank transfer, cheque, card terminal). Updates invoice status to PARTIAL or PAID based on the running total. |
mark_invoice_sent | Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent. |
void_invoice | 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. |
delete_invoice | Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice. |
restore_invoice | Restore a previously deleted DRAFT invoice. |
get_invoice_stats | Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook. |
list_event_registrations | List registrations for an event in the active company, including CRM account IDs for campaign exclusions. |
get_event_campaign_exclusions | Resolve pending, confirmed, and paid event registrations into unique CRM account IDs for campaign exclusions. Pass accountIds to audienceExclusions only when ready=true; cancelled registrations are omitted and unmatched guests make the result not ready. |
list_subscriptions | List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions. |
get_subscription | Fetch a single subscription with customer, tier, billing cycle, and renewal info. |
create_subscription | Create a manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing. |