Now live

Run SetSmart from your AI.

Connect your SetSmart account to Claude, Cursor, or ChatGPT via the Model Context Protocol. Manage triggers, templates, conversations, campaigns, assistants, and settings — all from chat.

Try saying…

"Pause my WhatsApp AI for the weekend and resume it on Monday."
"Add the tag 'vip' to my last 20 booked leads."
"Create a DM trigger on Instagram for keyword 'price'."
"Find all contacts tagged vip who haven't booked yet."

Every tool, right in your AI.

192 tools across 192 categories, scoped to your account.

conversation (24)
  • conversation_list — List conversations with rich filters. Returns paginated list sorted by last mess…
  • conversation_search — Free-text search across name, email, phone, instagram_username, AND message bodi…
  • conversation_get — Get a single conversation with full detail: contact info, tags, notes, custom_fi…
  • conversation_get_messages — Return the full message list for a conversation (paginated).
  • conversation_add_tag — Add one or more tags to a conversation (deduped).
  • conversation_remove_tag — Remove one or more tags from a conversation.
  • conversation_set_notes — Replace the notes for a conversation (freeform text).
  • conversation_set_custom_fields — Merge key/value pairs into a conversation's custom_fields JSON. Values are store…
  • conversation_remove_custom_fields — Remove specific keys from a conversation's custom_fields.
  • conversation_set_assistant — Override which AI assistant handles this conversation (sets conversations.assist…
  • conversation_set_qualification — Set qualification status: true (qualified), false (unqualified), or null (clear)…
  • conversation_set_booked — Mark conversation booked (true/false). When true, sets booked_at to now.
  • conversation_set_ok_call — Mark conversation as "ok for call" (true/false).
  • conversation_set_answered — Mark conversation answered (true/false).
  • conversation_set_contacted — Mark conversation as contacted (true/false).
  • conversation_set_read — Mark conversation as read/unread (is_read flag).
  • conversation_set_pinned — Pin or unpin a conversation.
  • conversation_rename — Change the display name for the contact.
  • conversation_delete — Delete a single conversation. Pass confirm=true to proceed.
  • conversation_bulk_tag — Add tags to many conversations at once. Provide either explicit conversation_ids…
  • conversation_bulk_set_assistant — Change assistant_id for many conversations.
  • conversation_bulk_delete — Delete many conversations at once. Pass confirm=true.
  • conversation_delete_tag_globally — Remove a tag string from EVERY conversation on the account.
  • conversation_list_all_tags — Return the list of distinct tags used across all conversations on this account, …
assistant (23)
  • assistant_list — List all AI assistants for the user, with defaults per channel highlighted.
  • assistant_get — Get an assistant by id with full instructions, model, and integration flags.
  • assistant_create — Create a new AI assistant with a name, system prompt, and model.
  • assistant_update — Update assistant fields (name, instructions, model, integration flags).
  • assistant_delete — Delete an assistant. Pass confirm=true.
  • assistant_duplicate — Duplicate an assistant (copies name + instructions + integration flags; new uniq…
  • assistant_set_default — Set an assistant as the default for a channel (whatsapp, instagram, messenger).
  • assistant_get_defaults — Return which assistant is default for each channel.
  • assistant_edit_prompt — Directly replace the instructions (system prompt) of an assistant with exact tex…
  • assistant_ai_edit_prompt — Edit an assistant's system prompt using the SetSmart AI prompt editor. Takes a n…
  • assistant_configure_calendly — Configure Calendly booking on an assistant.
  • assistant_configure_ghl — Configure GoHighLevel calendar booking on an assistant.
  • assistant_configure_iclosed — Configure iClosed booking on an assistant.
  • assistant_analyze_persona — Trigger persona analysis using the last 150 answered conversations (uses OpenAI)…
  • assistant_scrape_sources — Step 2 of the assistant wizard: scrape websites (and optionally an Instagram han…
  • assistant_transcribe_youtube — Transcribe a YouTube video (via Apify) to use as assistant knowledge context. Re…
  • assistant_fetch_instagram_profile — Fetch the connected user's Instagram profile (bio, website, followers) via Meta …
  • assistant_generate_business_details — Step 3 of the wizard: from scraped_data + niche, generate a structured business …
  • assistant_generate_script — Step 5 of the wizard: generate a complete conversation script (array of steps wi…
  • assistant_edit_script_ai — Refine a script generated by assistant_generate_script using natural-language in…
  • assistant_create_from_form — Step 7 (final) of the wizard: create a new AI assistant from the full form data.…
  • assistant_list_files — List files attached to an assistant's vector store (knowledge base).
  • assistant_remove_file — Remove a file from an assistant's vector store. Requires an OpenAI API key on th…
ai (15)
  • ai_get_all_status — Return the global AI automation status for every channel (Instagram, WhatsApp, M…
  • ai_set_channel — Enable or disable AI automation on a whole channel. E.g. "pause my WhatsApp AI f…
  • ai_pause_channel — Convenience: turn OFF AI automation for a channel.
  • ai_resume_channel — Convenience: turn ON AI automation for a channel.
  • ai_pause_conversation — Turn AI OFF for a single conversation. Messages keep arriving, but the AI will n…
  • ai_resume_conversation — Turn AI back ON for a single conversation (clears the "off" step).
  • ai_list_paused_conversations — List conversations where AI is currently off (step = "off"). Optionally filter b…
  • ai_end_conversation_followups — Set a conversation to the "end" follow-up step, stopping follow-up messages but …
  • ai_relaunch_conversation_followups — Set a conversation back to the "launch" step to re-enable follow-ups.
  • ai_get_blacklist — Get the list of blacklisted Instagram usernames (AI will ignore messages/comment…
  • ai_update_blacklist — Replace the entire Instagram blacklist with the given array of usernames.
  • ai_add_to_blacklist — Append one or more Instagram usernames to the blacklist (idempotent, deduped). T…
  • ai_remove_from_blacklist — Remove one or more Instagram usernames from the blacklist.
  • ai_get_blocked_countries — Get the list of blocked phone country dial codes (numbers in those countries won…
  • ai_update_blocked_countries — Replace the list of blocked phone dial codes (e.g. ["1", "44"] for US and UK).
contact (13)
  • contact_find — Find contacts by any combination of identifiers. Always returns an array of matc…
  • contact_get — Get a single contact by id with all fields.
  • contact_create — Create a new contact/conversation. Channel and phone (or instagram_id) required.…
  • contact_update_custom_fields — Merge key/value pairs into a contact's custom_fields (values stored as strings).…
  • contact_update_phone — Fix or change a contact's phone number (updates recipient_number).
  • contact_update_name — Update a contact's display name.
  • contact_add_tags — Add tags to a contact (by contact_id).
  • contact_remove_tags — Remove tags from a contact.
  • contact_mark_purchased — Mark the associated lead as purchased (writes leads.purchased=true when a lead e…
  • contact_delete — Delete a contact and its conversation. Pass confirm=true.
  • contact_import — Import a single contact (alias of contact.create). Useful for opt-in flows.
  • contact_import_from_attachment — Import contacts from a CSV/XLSX file the user uploaded in this chat (attachment_…
  • contact_import_bulk — Import many contacts at once (for small lists pasted as text). Dedupes by existi…
whatsapp (8)
  • whatsapp_get_status — Return WhatsApp connection status: provider (Cloud API or 360dialog), phone, WAB…
  • whatsapp_get_connect_instructions — Return the in-app URL to connect a WhatsApp Business account (Meta Cloud API or …
  • whatsapp_get_profile — Fetch the current WhatsApp Business profile (about, description, address, email,…
  • whatsapp_update_profile — Update WhatsApp Business profile fields: about, description, address, email, web…
  • whatsapp_get_phone_info — Fetch phone number info (display number, verified name, quality rating) from Met…
  • whatsapp_disconnect — Disconnect the WhatsApp account (Cloud or 360dialog). Irreversible; pass confirm…
  • whatsapp_set_coexistence_auto_disable_ai — When coexistence mode is on, this controls whether AI auto-pauses when you reply…
  • whatsapp_set_history_import_ai — Control whether the AI should respond to historical imported conversations ("on"…
instagram (7)
  • instagram_get_status — Get Instagram connection status: connected, username, followers (if cached), and…
  • instagram_get_connect_url — Return the URL the user should open in a browser to connect their Instagram acco…
  • instagram_disconnect — Disconnect the Instagram account (clears instagram_id and removes the user_insta…
  • instagram_set_story_replies — Enable or disable Instagram story reply handling.
  • instagram_set_auto_disable_on_human — When ON, AI pauses automatically for a conversation the moment a human (you) sen…
  • instagram_set_follow_up_unanswered — Enable or disable follow-ups for Instagram conversations the lead hasn't answere…
  • instagram_check_webhook_status — Check whether the Instagram webhook subscription is active for this account.
account (6)
  • account_get — Get the authenticated user's SetSmart account info: email, client name, language…
  • account_update_language — Change the preferred language for emails and UI: en, fr, or es.
  • account_regenerate_api_key — Regenerate the SetSmart public API key (used for Zapier/Make/external REST). Thi…
  • account_get_webhook_url — Get the current outgoing webhook URL (SetSmart will POST events like booked/qual…
  • account_set_webhook_url — Set (or clear) the outgoing webhook URL for receiving SetSmart events. Pass an e…
  • account_get_full_config — Return the full client_config for the user (sensitive keys redacted). Useful whe…
dm trigger (6)
  • dm_trigger_list — List all DM triggers grouped by channel (Instagram + Messenger). Each channel ha…
  • dm_trigger_set_keywords — Replace the full keyword list for a channel (instagram or messenger). Pass an em…
  • dm_trigger_add_keywords — Append keywords to a channel's DM trigger list (deduped).
  • dm_trigger_remove_keywords — Remove keywords from a channel's DM trigger list.
  • dm_trigger_set_strict_mode — Enable or disable strict mode for DM triggers on a channel. Strict mode only rep…
  • dm_trigger_test — Simulate a DM against the current trigger list. Returns whether it would match (…
template (6)
  • template_list — List all WhatsApp message templates for the connected WABA. Returns name, langua…
  • template_get — Get a single template by name (across all languages). Returns each language vers…
  • template_create — Create a WhatsApp template (submitted for Meta review). Provide name, language, …
  • template_delete — Delete a WhatsApp template by name.
  • template_generate_with_ai — Generate WhatsApp template copy with AI using the user's recent assistants as co…
  • template_top — Return the top-used templates with usage counts from recent history.
message (6)
  • message_send_text — Send a plain text message. Channel can be whatsapp / instagram / messenger. Reci…
  • message_send_image — Send an image. For WhatsApp, pass a public URL (or uploaded media_id). For IG/Me…
  • message_send_audio — Send an audio message (WhatsApp). Pass audio_url (public) or media_id (already u…
  • message_send_video — Send a video message via WhatsApp Cloud API. Provide video_url (public) or media…
  • message_send_template — Send a WhatsApp template message with variables. Template must be approved.
  • message_send_reaction — React to a WhatsApp message with an emoji (only supports WhatsApp).
voice (6)
  • voice_get_settings — Return ElevenLabs settings: whether an API key is set and the stored voice_id.
  • voice_set_elevenlabs_key — Save the ElevenLabs API key on the account.
  • voice_delete_elevenlabs_key — Remove the ElevenLabs API key and clear the stored voice_id.
  • voice_set_voice_id — Set the ElevenLabs voice ID that will be used for TTS and follow-up audio.
  • voice_list_audio_library — List saved follow-up audios (slugs + names) available for assistants and follow-…
  • voice_toggle_assistant_audio — Link or unlink an audio slug to an assistant (assistant_audios join).
calendly (6)
  • calendly_get_status — Return Calendly connection status and any stored account info.
  • calendly_get_connect_url — Return the URL the user should open to connect Calendly (OAuth).
  • calendly_list_event_types — List Calendly event types for the connected user.
  • calendly_set_preferred_event — Set which Calendly event type the AI should book by default.
  • calendly_check_plan — Check whether the Calendly account supports webhooks (Pro plan).
  • calendly_disconnect — Disconnect Calendly. Pass confirm=true.
analytics (6)
  • analytics_dashboard — Return high-level dashboard stats: messages today, conversations this week, mont…
  • analytics_stats — Return aggregate conversation/message stats over a date range with optional tag …
  • analytics_channel_breakdown — Per-channel breakdown of conversations + messages for the last N days.
  • analytics_daily_stats — Return the latest daily-stats snapshot (from global_data).
  • analytics_get_persona — Return the latest persona analysis for the user.
  • analytics_message_costs — Return token + cost totals for the last 30 days (from message_ids).
billing (6)
  • billing_get_subscription — Return the current subscription state across providers (Stripe, Mamo, Lemon Sque…
  • billing_get_latest_invoice — Return the most recent invoice details.
  • billing_list_cards — List saved payment cards across Stripe and Mamo Pay.
  • billing_get_invoices — Return recent invoices across providers (last N).
  • billing_validate_discount_code — Check whether a discount code is valid for the current user.
  • billing_cancel_subscription — Cancel the active subscription (routes through Stripe/Mamo/LemonSqueezy). Pass c…
comment reply (5)
  • comment_reply_get_auto_reply — Return the Instagram comment auto-reply config (replies to ALL comments on ALL p…
  • comment_reply_set_auto_reply — Set the Instagram comment auto-reply: a list of public comment variants and/or a…
  • comment_reply_list_global_triggers — List Instagram global keyword triggers (apply across ALL posts when a keyword is…
  • comment_reply_set_global_triggers — Replace the full list of Instagram global comment triggers. Each trigger has key…
  • comment_reply_add_global_trigger — Append a single global comment trigger to the list.
followup (5)
  • followup_get_config — Return the current follow-up configuration (short/long toggles, custom messages,…
  • followup_set_short — Configure the short follow-up (~4h): enable/disable, type (ai / fixed / audio), …
  • followup_set_long — Configure the long follow-up (~22h).
  • followup_set_optin_delays — Configure opt-in delays (seconds, converted to ms) and the daily opt-in limit.
  • followup_set_split_multi_part — Toggle whether AI replies are split into multiple WhatsApp messages when long.
schedule (5)
  • schedule_get_night_hours — Get night-hours config: whether AI is restricted during certain hours, timezone,…
  • schedule_set_night_hours — Configure night hours. Pass restrict_night_hours=true to restrict AI during the …
  • schedule_get_off_days — Get scheduled off-days config (enabled flag, days array 0=Sun..6=Sat, timezone).
  • schedule_set_off_days — Set scheduled off-days. Constraint from the app: no two consecutive days may be …
  • schedule_get_current_status — Return whether the account is currently inside a night-hours window or a schedul…
ghl (5)
  • ghl_get_status — Return GoHighLevel (Lead Connector) connection status.
  • ghl_get_connect_url — Return the URL to start the GHL OAuth flow.
  • ghl_list_calendars — List available calendars on the connected GHL location.
  • ghl_set_preferred_calendar — Set which GHL calendar the AI should use for bookings.
  • ghl_disconnect — Disconnect GoHighLevel. Pass confirm=true.
iclosed (5)
  • iclosed_get_status — Return iClosed connection status.
  • iclosed_validate_key — Validate an iClosed API key and store it on the user account.
  • iclosed_list_events — List iClosed events available for the connected account.
  • iclosed_set_preferred_event — Set which iClosed event should be used for bookings.
  • iclosed_disconnect — Disconnect iClosed. Pass confirm=true.
shopify (5)
  • shopify_get_status — Return Shopify connection status and store info.
  • shopify_get_install_url — Return the Shopify install URL for a given shop domain.
  • shopify_update_store — Update store settings (abandoned cart enable/disable, templates, etc).
  • shopify_get_stats — Return Shopify order and abandoned-cart recovery stats for the connected store.
  • shopify_disconnect — Disconnect Shopify. Pass confirm=true.
instagram post (4)
  • instagram_post_list — List recent Instagram posts (media) for the connected account. Requires instagra…
  • instagram_post_get_triggers — Get all per-post comment triggers for a specific Instagram post (or all posts wh…
  • instagram_post_set_triggers — Replace the trigger for a specific post. Trigger shape: { keywords:[...], commen…
  • instagram_post_delete_triggers — Remove all triggers attached to a specific post.
campaign (4)
  • campaign_preview_audience — Preview the audience size for a set of filters (tags include/exclude, status, ch…
  • campaign_create — Create a WhatsApp template broadcast. Inserts rows into message_queue for each m…
  • campaign_cancel — Cancel all pending sends in a campaign batch.
  • campaign_get_stats — Get send/delivered/failed stats for a campaign batch.
settings (3)
  • settings_get — Return the current client_config settings (sensitive keys redacted).
  • settings_update — Update one or more client_config fields. Accepts any subset of allowed fields. U…
  • settings_list_allowed_fields — List the settings fields that can be updated via settings.update.
messenger (3)
  • messenger_get_status — Return Facebook Messenger connection status.
  • messenger_get_connect_url — Return the URL the user should open to connect their Facebook Page to Messenger.
  • messenger_disconnect — Disconnect Facebook Messenger (clears facebook_page_id and the user_messenger_ac…
scheduled (3)
  • scheduled_list — List scheduled WhatsApp messages queued in message_queue, filtered by status.
  • scheduled_cancel — Cancel (delete) a single scheduled message by ID.
  • scheduled_delete_all_pending — Delete ALL pending scheduled messages. Pass confirm=true.
onboarding (3)
  • onboarding_scrape_website — Scrape a URL (Firecrawl) and extract structured business details. Returns URL + …
  • onboarding_generate_business_details — Ask AI to infer business details (name, description, offers, audience) from prev…
  • onboarding_generate_instagram_bios — Generate 5 Instagram bio suggestions from a business description.
knowledge (2)
  • knowledge_scrape_website — Scrape a URL with Firecrawl and return extracted business fields + raw markdown.…
  • knowledge_transcribe_youtube — Transcribe a YouTube video URL for use as assistant knowledge.
private reply (1)
  • private_reply_preview — Simulate: given a comment text on a specific post, return what private DM (and p…
feedback (1)
  • feedback_submit — Submit feedback to the SetSmart team with an optional rating (1-5).
© SetSmart