MCP App Store
by KeenEthics
Business & Operations
LetsBot icon

LetsBot

by BOT FOR DIGITAL SOLUTIONS LIMITED

Overview

LetsBot is a WhatsApp Business management platform. This connector lets Claude read and act on your own LetsBot data — contacts, conversations, messages, labels, bot settings, and campaigns — and turn it into reports. Everything is scoped to your account via OAuth; you only ever see your own data.

Tools

add_crm_note

ChatGPT
Add an internal note to the CRM timeline (record history) of a contact, company or deal. Only the team sees it; nothing is sent to the customer. Optionally mention team members (user ids from get_moderators) and pin it to the top.

add_deal_item

ChatGPT
Add a line item (a catalog product or a free line) to a deal: quantity, unit price, discount % and VAT %. When the deal is set to use its items total as the amount, the deal amount is updated. Nothing is sent to the customer.

add_note

ChatGPT
Add an internal note to a conversation — visible only to the merchant's team in the LetsBot inbox, never sent to the customer. Use it to leave context for colleagues (e.g. "customer wants a refund, waiting for the warehouse"). A note does not count as a reply to the customer. To alert teammates, mention them: write @Name in the body (e.g. "@Sara please call the customer") or pass their ids or names in "mentions" — each mentioned teammate is notified in the inbox and on their phone.

add_ticket_note

ChatGPT
Add an internal note to a support ticket's timeline, visible to the team only. It is never sent to the customer — to reply to them use the messaging tools.

ai_analyze_contact

ChatGPT
Return a contact profile and recent conversation sample so the assistant can analyze the customer (engagement level, interests, recommendations). The assistant performs the analysis on the returned data.

ai_dashboard_summary

ChatGPT
Return key dashboard metrics (contact counts, conversations awaiting a reply, active moderators, today's activity, recent contacts) plus guidance so the assistant can write an interpreted summary. The tool itself only computes the counts. It reports no read/unread state: nothing here indicates what the merchant has opened or seen on their own device.

ai_improve_message

ChatGPT
Return a draft message together with the desired tone and context so the assistant can rewrite it (grammar, tone, clarity) while keeping the original intent. The assistant produces the improved version.

ai_sentiment_analysis

ChatGPT
Return the customer messages of a conversation so the assistant can analyze sentiment (positive, negative, or neutral) and emotional indicators. The assistant performs the sentiment analysis on the returned messages.

ai_suggest_reply

ChatGPT
Return the recent conversation and contact context so the assistant can draft suggested replies. The assistant generates the reply suggestions from the returned context (nothing is sent).

ai_summarize_conversation

ChatGPT
Return the recent conversation history with a contact so the assistant can summarize it (key topics, issues, and outcomes). The assistant writes the summary from the returned messages.

ai_translate_message

ChatGPT
Return a message together with the requested target language so the assistant can translate it. The assistant produces the translation.

archive_contact

ChatGPT
Archive or unarchive a contact chat.

assign_label

ChatGPT
Assign or remove a label from a contact. Toggles the label — if already assigned it will be removed, if not assigned it will be added.

assign_moderator

ChatGPT
Assign a team member (moderator) to a conversation, or remove them from it. Pass action=assign or action=unassign to say which; without action the call toggles (adds if absent, removes if present). The assigned member is notified. To move many conversations from one member to another at once, use reassign_conversations.

assign_ticket

ChatGPT
Assign a support ticket to a team member and/or a team. Pass assignee_user_id null to unassign. A field you omit keeps its current value. Nothing is sent to the customer.

block_contact

ChatGPT
Block or unblock a WhatsApp contact.

book_appointment

ChatGPT
Book an appointment for a customer at a free time (get the times from get_available_slots). Pass the customer as contact_id or phone, or — for someone who is not a contact — customer_name (+ customer_phone). All booking rules apply; a taken or invalid time is refused with the reason. If the workspace switched on the booking confirmation message, the customer is sent it on WhatsApp — confirm is then required.

cancel_appointment

ChatGPT
Cancel an appointment and free its time slot. The staff member is notified inside LetsBot and a synced Google Calendar event is removed. No message is sent to the customer — tell them yourself with the messaging tools if needed.

cancel_campaign

ChatGPT
Stop a bulk message campaign that is scheduled or sending right now. Recipients not reached yet will not get the message; those already sent are unaffected. Use it immediately when the merchant says a campaign is wrong or must stop. The campaign can be resumed later from the LetsBot panel (Bulk messages → the campaign).

cancel_scheduled_activity

ChatGPT
Stop messages that are still waiting to be sent (as listed by list_scheduled_activity): either ONE row (pass source + source_id; it is cancelled immediately — stopping a send needs no approval) or ALL rows matching optional filters (pass all=true; this needs the user's confirmation — call first with confirm=false to get the count, then confirm=true). Pending store notifications (Salla / Zid / WooCommerce) are deleted; queued WhatsApp messages are marked cancelled and never sent. Already-sent messages are not affected and cannot be recalled. Does NOT stop bulk campaigns (use cancel_campaign).

cancel_social_post

ChatGPT
Stop a Social Studio post from publishing (unschedule it). Destinations that have not published yet are cancelled; anything already published stays online — this does not remove published posts from the networks. The post is kept (status cancelled) so the team can see it; to remove it entirely use delete_social_post. Find post IDs with list_scheduled_social_posts.

complete_task

ChatGPT
Mark a task as done. A recurring task automatically gets its next occurrence. Nothing is sent to the customer.

create_campaign

ChatGPT
Create a new bulk message campaign to send messages to multiple contacts. Messages can be targeted by label. Campaign will be scheduled and processed by the queue.

create_company

ChatGPT
Create a CRM company (account). Only name is required. Optionally link one existing contact as its primary contact with contact_id or phone. Nothing is sent to the customer.

create_contact

ChatGPT
Create a new WhatsApp contact in the system.

create_deal

ChatGPT
Create a sales deal in the Deals pipeline. Only title is required: without stage_id the deal starts in the first open stage of the pipeline (the default pipeline when pipeline_id is omitted). Link it to a customer with contact_id or phone. Nothing is sent to the customer.

create_interactive_conversation

ChatGPT
Create an interactive bot conversation with buttons. When triggered, shows a message with clickable button options that lead to different responses.

create_label

ChatGPT
Create a new label/tag for organizing contacts.

create_product

ChatGPT
Add a product to the CRM catalogue so quotes and deals can use it. name, price and currency are required; VAT defaults to 0.

create_quick_reply

ChatGPT
Create a new quick reply/canned response. Quick replies let agents send pre-written messages instantly.

create_quote

ChatGPT
Create a DRAFT CRM quote with a Q-#### number. Link it to a deal (deal_id — its line items are copied when no items are given) and/or a contact (contact_id or phone). Nothing is sent to the customer: the operator reviews and sends it from the panel. Returns the quote and its editor url.

create_simple_conversation

ChatGPT
Create a simple bot auto-reply rule. When a customer sends a message matching the trigger keyword, the bot replies with the specified text.

create_social_post

ChatGPT
Create a Social Studio post (Facebook Page, Instagram, Threads, Telegram channel). Without publish_at the post is saved as a draft for the team to review. With publish_at (workspace local time, YYYY-MM-DD HH:mm) it is scheduled and will be published publicly at that time. Instagram needs an image or video, so a text-only Instagram post can only be a draft. Call without destination_ids to get the list of connected destinations.

create_task

ChatGPT
Create a follow-up task for the team (e.g. "Call Laila about the renewal"), optionally linked to a contact or deal, with a due time, a reminder and an assignee. The reminder notifies the assignee inside LetsBot; nothing is sent to the customer.

create_ticket

ChatGPT
Open a support ticket for a customer (contact_id or phone). The ticket is linked to their open conversation and latest message; without a subject one is taken from that message. SLA targets follow the workspace policy. If the workspace switched on the "ticket opened" customer notification, the customer is sent that WhatsApp message — confirm is then required.

create_whatsapp_template

ChatGPT
Create a new WhatsApp message template and submit it to Meta for review (Official WhatsApp / Cloud API workspaces only). A template is the only way to start a conversation or message a customer outside the 24-hour reply window; once Meta APPROVES it, send it with send_template. Inputs: name (lowercase letters, digits and underscores; Meta registers it as "nt_<name>"), language (any language Meta accepts for templates, e.g. "ar", "en", "es", "pt", "fr", "de", "tr"), category, body, an example value for every body placeholder, and optionally a header (text, or an image/video/document with a public sample URL), a footer and buttons. Categories: UTILITY = a message about something the customer already started (order update, booking reminder, account notice) — no promotion; MARKETING = promotions, offers, announcements, re-engagement — billed per delivered message at Meta's marketing rate. Meta decides the final category and may RE-CATEGORISE a UTILITY template that contains promotional wording as MARKETING (billed as marketing). AUTHENTICATION (one-time passcodes) cannot be authored here — the panel's custom-template editor does not author it either. Placeholders: positional {{1}}, {{2}} … numbered from 1 without gaps, OR named {{customer_name}} (lowercase) — never both in one template; pass examples as {"1": "Sara"} or {"customer_name": "Sara"}. Consent gate: call with confirm=false first — nothing is saved or sent and you get the exact payload Meta will receive; show it to the user and only call again with confirm=true after they approve. Meta reviews a submitted template within minutes up to 24 hours; the result (APPROVED / REJECTED with Meta's reason) appears in list_whatsapp_templates. This tool does not edit or delete existing templates (use the WhatsApp templates page in the panel) and does not send any message.

delete_bot_conversation

ChatGPT
Permanently delete one bot flow (any type) by ID, together with its buttons and list sections. The bot stops answering its keywords. This cannot be undone — to pause a flow instead, use set_bot_conversation_active with active=false. Call with confirm=false first to get a preview (keywords, buttons, sections) to show the user. Run get_bot_conversations with enabled_only=false to find IDs.

delete_contact

ChatGPT
Permanently delete one contact (a one-to-one chat) together with its whole conversation: every message and media file is erased shortly after, and this cannot be undone. Same as Delete on the contact in the LetsBot panel. Requires confirm: call with confirm=false first to get a preview (name, message count, labels, assigned team members), show it to the user, then call again with confirm=true. It does NOT block the number — the customer can still write again, which creates a new, empty contact; use block_contact to stop someone messaging, or archive_contact to just hide a chat. WhatsApp groups cannot be deleted with this tool. Exporting contacts is only available in the LetsBot panel.

delete_label

ChatGPT
Delete a contact label by ID. The label is removed from every contact that has it and from the inbox filters; the contacts themselves are not touched. Run get_labels first to find the ID.

delete_quick_reply

ChatGPT
Delete a quick reply (canned response) by ID. Run get_quick_replies first to find the ID. To only hide it, use update_quick_reply with status=false instead.

delete_social_post

ChatGPT
Delete a Social Studio post from the workspace calendar. Any destination that has not published yet is cancelled first. Copies already published on Facebook/Instagram/Threads/Telegram are NOT removed from those networks. Call with confirm=false first to get a preview to show the user. To only stop publishing and keep the post, use cancel_social_post. Find post IDs with list_scheduled_social_posts.

diagnose_messaging

ChatGPT
Answer "why are my messages failing / not arriving?": checks the WhatsApp number connection (QR logged out, access removed by Meta, test number, billing block), the reasons Meta gave for the latest failed messages, failed automatic store messages, and automatic messages whose WhatsApp template is not approved — each problem with its fix. Read-only.

draft_bot_flow

ChatGPT
Build a keyword bot flow (menu, buttons, replies) from a description in the merchant's words, any language. It is created SWITCHED OFF in the bot builder so the merchant can review and edit it, then switch it on. Uses 1 AI credit. Put everything the merchant described into "description": the trigger words, the menu options and each reply.

duplicate_bot_conversation

ChatGPT
Make a full copy of one bot flow (any type) by ID: the reply, its media, and all of its buttons, list sections and follow-up replies. The copy has the same keywords and the same ON/OFF state as the original, so two flows now answer the same keywords — change the copy's keyword with update_bot_conversation, or turn it off with set_bot_conversation_active. Each call creates a new copy. Run get_bot_conversations with enabled_only=false to find IDs.

find_duplicates

ChatGPT
Find likely duplicate CRM records with a confidence percentage and the reason (same phone, same e-mail, similar name in the same company or city). Pass contact_id or phone to check one contact; otherwise lists the open duplicate groups of contacts (or companies with object=company). Read-only — merging happens on the panel's Duplicates screen (merge_url), where it can be undone for 30 days.

forward_message

ChatGPT
Forward a message from one WhatsApp chat to another.

generate_social_post_from_product

ChatGPT
Write a social media post about a product with AI (in the workspace brand voice) and save it as a Social Studio draft for review. Uses one AI content credit. Nothing is published. Call without destination_ids to get the list of connected destinations.

get_abandoned_carts

ChatGPT
Get abandoned carts from the connected store (Salla, Zid, Shopify, WooCommerce or Magento) for the last N days, with a recovery summary: how many carts were abandoned and are still open, how many were recovered (bought later), how many of those were recovered after a WhatsApp reminder, the recovery rate and the recovered value. Each cart lists the customer name and phone, total, currency, items, checkout link, store, status (open or recovered) and the WhatsApp reminders already sent. Figures match the Insights page in LetsBot. WooCommerce carts are checkouts the shopper started but did not pay. Read-only: it sends nothing. To message a shopper, use send_template with the cart's customer_phone and an approved template; do not send the same cart a second reminder if reminders_sent is already above 0 unless the user asks.

get_ad_lead_settings

ChatGPT
Get the ad-lead auto-labeling configuration. Shows the label and moderator (if any) that the tenant has chosen to auto-apply to incoming contacts that arrive from a Meta Click-to-WhatsApp ad.

get_agent_performance

ChatGPT
Performance report for every team member (agent/moderator) in the workspace: average first response time, average response time, conversations currently awaiting their reply and how long the oldest has waited, open conversations assigned to them, conversations closed, messages sent and customer satisfaction (CSAT). Same figures as Reports → Agent performance in the LetsBot panel. Use it to answer "who is slow?", "who has unanswered chats?" or "how did the team do this week?". Pair with reassign_conversations to move a member's waiting conversations to someone else.

get_ai_assistant_settings

ChatGPT
Read how the AI assistant answers customers: whether AI replies are on, its instructions, its working hours and outside-hours message, when it hands the chat to a person (pause after hand-off / after a manual reply), what it does with voice notes, extra rules, timezone, and the Arabic dialect/tone when available.

get_assignment_rules

ChatGPT
Read how new conversations are automatically given to team members (operators): the assignment mode (off / round robin / least open), which team receives them, whether only available operators count, the per-operator cap, reassigning a conversation when its operator does not reply in time, rebalancing, and the backup operator. Each setting comes with a plain-words explanation, plus the teams, operators and limits you can use with update_assignment_rules. Read-only. Use get_workload / get_agent_performance for who currently holds which chats, and reassign_conversations to move chats by hand.

get_available_slots

ChatGPT
Free appointment times for a service, day by day, in the workspace booking timezone. Respects working hours, buffers, minimum notice, maximum days ahead, time off and existing bookings. Optionally for one staff member only.

get_booking_settings

ChatGPT
Read the appointment booking configuration: all services (also switched-off ones) with duration, buffers, price, staff; every staff member with their weekly working hours (or that they use the workspace default hours), timezone and active state; the default working hours; branches; and the booking rules (minimum notice, how far ahead, slot interval, timezone, auto-confirm). Working hours use day keys 0-6 (0 = Sunday) with HH:MM ranges. Use upsert_booking_service to add or change a service; free times come from get_available_slots.

get_bot_conversations

ChatGPT
Get all bot auto-reply conversations/rules. Shows configured triggers and their responses.

get_bot_settings

ChatGPT
Get all bot and AI-related settings for the current account.

get_bot_status

ChatGPT
Get the current bot status and settings. Shows whether the bot is active, AI mode, default reply settings, and match percentage.

get_campaign_status

ChatGPT
Get detailed status of a specific bulk message campaign including per-contact delivery statistics.

get_campaigns

ChatGPT
Get a list of bulk message campaigns. Shows campaign status, delivery stats, and scheduling info.

get_company

ChatGPT
Get one CRM company: its details, owner, lifecycle, the contacts linked to it (with their role and which one is primary) and how many deals and tickets point at it.

get_contact

ChatGPT
Get detailed information about a specific WhatsApp contact including labels, moderators, and last message.

get_contacts

ChatGPT
Get a paginated list of WhatsApp contacts with optional search and filter.

get_conversations_awaiting_reply

ChatGPT
List conversations where the customer wrote last and nobody has replied yet, newest first. This is a backlog of work outstanding, NOT a read/unread state: it is derived from who spoke last, so it clears when a reply is sent from any device and returns if the customer writes again. It is unaffected by whether anyone has opened the chat.

get_crm_report

ChatGPT
CRM sales report numbers, the same as the CRM Reports dashboard. widget: revenue_goal (monthly revenue won vs goal + weighted forecast), funnel (stage-to-stage conversion of deals created in the period), win_loss (won / lost, win rate, top lost reasons), leaderboard (per team member: deals won, revenue, win rate), lead_sources (new leads by source: whatsapp, salla, zid, website, instagram, ads, manual… and conversion), velocity (average days per stage, days to win), quotes (sent → viewed → accepted), store_revenue (store orders LTV by lifecycle stage), automation_impact (automation runs, deals created by automations). Money is never summed across currencies: totals are in the report currency, other currencies are listed separately.

get_csat_settings

ChatGPT
Read the customer satisfaction (CSAT / NPS / CES) survey settings: whether surveys are being sent (sending — each survey is a paid WhatsApp message), the survey type, the triggers (after an agent closes a conversation, after a ticket is resolved), the delay before sending, the per-customer frequency cap, how long an answer is accepted, the channels, follow-up / thank-you / alerts / AI sentiment switches, and the exact question the customer gets in each language (ar, en, es, pt; custom wording marked). Includes the estimated surveys per month. Change them with update_csat_settings; results come from get_csat_summary.

get_csat_summary

ChatGPT
Customer satisfaction results for a date range: surveys sent and answered, response rate, average score, % positive, % low, NPS (for nps surveys), the change against the previous period, and the same figures per agent, per team and per channel.

get_deal

ChatGPT
Get one sales deal: amount, stage, status, owner, contact, expected close date, and its latest activity (stage changes, notes, amount changes).

get_deal_pipelines

ChatGPT
Read the sales pipeline configuration: every pipeline (name, currency, default or not) with its stages in board order (id, name, colour, win probability %, kind open/won/lost, how many deals sit in it), the lost reasons, and the workspace default currency. Use it before upsert_pipeline or upsert_pipeline_stage to get the ids. For deal amounts per stage use get_pipeline_summary; for the deals themselves list_deals.

get_goals

ChatGPT
Sales goals (revenue won, deals won or new leads, per team member / team / the whole workspace) with progress in the current month or quarter: target, actual, ratio, expected-by-today pace (ahead / behind / done) and days left.

get_group_messages

ChatGPT
Get messages from a WhatsApp group conversation, newest first, with the sender of each message. Read-only: reading a group NEVER marks its messages as read and sends no read receipts. Use get_groups to list groups and their ids.

get_groups

ChatGPT
Get a paginated list of WhatsApp group conversations. Read-only: listing groups never marks anything as read. Counts report what has not been opened in the LetsBot inbox, which is not the same as what the merchant has seen on their own phone. Use get_group_messages to read a group's history.

get_label_contacts

ChatGPT
Get all contacts that are assigned to a specific label.

get_labels

ChatGPT
Get all labels/tags available in the account. Labels are used to categorize and organize contacts.

get_lead_score

ChatGPT
Get a CRM contact's lead score (0-100, hot ≥ 70, warm ≥ 40) with the reason for every point (messages, reply speed, quotes, store orders, deals, lifecycle, inactivity), the last 30 days trend and store order metrics (orders count, lifetime value, average order, last order). Pass contact_id or phone.

get_media_item

ChatGPT
Get one media library item: direct url, kind, size, dimensions, title, caption, alt text, tags, folder, whether WhatsApp accepts it as-is, and where it is used (campaigns, social posts, bot replies…).

get_message_status

ChatGPT
Check what WhatsApp actually did with messages you already sent — delivered, read, still pending, or FAILED with Meta's own reason. A send tool returning status "sent" only means Meta accepted the message; Meta can still refuse to deliver it seconds later, and this tool is the only way to learn that. Call it a minute or two after sending (pass the message_id values the send tools returned), or pass a phone number to review every recent outbound message to one contact.

get_messages

ChatGPT
Get messages from a WhatsApp conversation. Returns the most recent messages paginated.

get_moderators

ChatGPT
Get all moderators/agents available in the account. Moderators are team members who can handle conversations.

get_my_chats

ChatGPT
Get contacts/chats assigned to the current user (moderator).

get_notification_template

ChatGPT
Read ONE automatic store notification (order status, verification code/OTP, welcome, review request …) in full: its message text in every language, its image/video/file, whether it is on, and its WhatsApp (Meta) approval. Pass the id from list_store_automations (kind notification_template), or the store module + event slug (e.g. module "salla", slug "otp" or "completed").

get_order_status

ChatGPT
Get the status and details of an e-commerce order. Supports Salla and Zid platforms, and any other connected store that can look orders up (odoo, shopify, woocommerce). Orders are synced from the connected store.

get_pipeline_summary

ChatGPT
Summarise a sales pipeline: for every stage the number of deals and their total amount, plus open pipeline value, weighted forecast (each open deal × its stage probability), won this month and the 90-day win rate. Amounts are in the pipeline currency; deals in another currency are counted separately, never added. Optionally only one owner's deals.

get_quick_replies

ChatGPT
Get all quick replies/canned responses available. Quick replies are pre-written message templates that can be sent quickly.

get_quote

ChatGPT
Read one quote with its line items, totals, status (draft, sent, viewed, accepted, declined, expired), buyer and the customer link.

get_report

ChatGPT
Read one tab of the LetsBot Reports page for a period: KPI cards with the change vs the previous period, the main chart (labels + series), the table rows (max 100) and footnotes. Tabs: conversations (opened/closed/open), responses (reply speed), resolutions, messages (inbound/outbound, delivery), contacts (new contacts by channel, ads vs organic), assignments, lifecycle, calls (WhatsApp calls), agent_performance, users (team availability/workload) and broadcasts (campaign delivery and replies). Call with no tab to get the list of tabs available in this workspace. Same numbers the merchant sees in the panel for the same period. For a per-agent table with live "awaiting reply" counts use get_agent_performance instead. Read-only.

get_routing_settings

ChatGPT
Read the conversation-routing configuration: every department (team) with its members, description, business hours, timezone, channels, default priority, skills, assignment mode and whether it has a paid out-of-hours reply; the routing rules in order (first match wins; conditions, action, enabled, how often matched); and whether Routing Pro is deciding new conversations plus the default open-conversation capacity per agent. Use upsert_department to create or change a department. Live queues and agent load come from get_workload / list_departments. Rules are edited in LetsBot → Routing → Rules.

get_store_setup_checklist

ChatGPT
The step-by-step set-up of a store on LetsBot (Salla, Zid, Shopify, …): 1 connect the WhatsApp number, 2 store notifications (order status, verification code, welcome, review), 3 abandoned-cart reminders, 4 cash-on-delivery confirmation, 5 AI replies. Use it when the merchant asks to set up his store/account or "what is left"; then walk him through the first unfinished step.

get_ticket

ChatGPT
Get one support ticket: subject, description, status, priority, assignee, customer, SLA clocks (first response / resolution, breached or not) and its latest timeline (status changes, assignments, internal notes).

get_ticket_settings

ChatGPT
Read the helpdesk configuration: ticket types (id, name, colour, active, already used), SLA policies (first-response and resolution targets in minutes per priority low/normal/high/urgent, whether they count business hours only, escalation, which one is the default), the support hours used by the SLA timers, and whether the customer gets a (paid) message when a ticket is opened or resolved. Use upsert_ticket_type to add or rename a type. SLA policies and notifications are edited in LetsBot → Tickets → Settings.

get_timeline

ChatGPT
Get the CRM timeline of a contact, company or deal, newest first: notes, logged calls and meetings, daily chat summaries (message counts in/out per channel per day, never every message), deal stage moves, tasks, tickets, appointments and lifecycle changes. A company timeline also includes its linked contacts and deals. Page with next_cursor.

get_workload

ChatGPT
The live team workload: for each live-chat agent their status, whether they are on shift or on time off, open conversations against their capacity and their departments; plus how many conversations wait in each department's queue and how many wait with no department.

list_appointments

ChatGPT
List appointments: upcoming (default), today, past, all, or a date range — optionally by status, staff member, service or customer. Times are in the workspace booking timezone.

list_automations

ChatGPT
List the CRM automations (trigger → conditions → actions): id, name, status (draft, active, paused), trigger type, number of steps, runs, failures, last run, and whether it sends paid WhatsApp template messages. Filter by status.

list_companies

ChatGPT
List CRM companies (accounts), most recently updated first. Filter by a search term (name, domain, email or phone), lifecycle (lead, prospect, customer, partner, churned) or owner (a team member user id).

list_deals

ChatGPT
List sales deals (Deals pipeline), newest activity first. Filter by pipeline, stage, status (open, won, lost), owner (a team member user id), contact, or a search term in the title. Also returns the pipelines with their stages, so the ids for create_deal / update_deal are at hand.

list_departments

ChatGPT
List the active departments (teams) conversations can be routed to: name, description, members count, whether they are open right now (business hours / holidays), when they open next, and how many conversations wait in their queue. Use the id with transfer_to_department.

list_low_scores

ChatGPT
The most recent low satisfaction scores in a date range (up to 20): rating, the customer's comment, agent, channel, linked ticket and the contact — so the team can follow up with unhappy customers.

list_products

ChatGPT
List the CRM product catalogue (the items quotes and deal line items use): name, SKU, price, currency, VAT and whether it is active. Filter by a search term (name or SKU).

list_quotes

ChatGPT
List CRM quotes (Q-#### numbers), newest first, with status (draft, sent, viewed, accepted, declined, expired), total, validity and how many times the customer opened the link. Filter by status, deal_id or contact (contact_id or phone).

list_scheduled_activity

ChatGPT
List messages that are still waiting to go out to customers: pending store notifications from Salla, Zid and WooCommerce (order updates, abandoned-cart reminders, …) and the outgoing WhatsApp send queue (including failed sends that would be re-sent when the number reconnects). Use it when the merchant asks "what is about to be sent?" or wants to stop pending messages. Returns totals per source and rows with source + source_id — pass those to cancel_scheduled_activity. Does NOT list bulk campaigns (use get_campaigns / cancel_campaign) or scheduled social posts (list_scheduled_social_posts). Read-only.

list_scheduled_social_posts

ChatGPT
List Social Studio posts scheduled (or waiting for approval) between two dates, in the workspace timezone. Defaults to the next 14 days; at most 92 days per call.

list_services

ChatGPT
List the bookable appointment services (name, duration, price, which staff deliver it) and the active booking staff. Use the ids with get_available_slots and book_appointment.

list_store_automations

ChatGPT
List every automatic WhatsApp message this workspace sends to its store customers, and whether each one is ON or OFF: order/store event notifications (kind notification_template — e.g. order created, shipped, delivered, per store platform), abandoned-cart reminders (kind cart_reminder, plus older per-store ones as legacy_cart_reminder, read-only) and automation reminders (kind behavioral_reminder — e.g. product viewed, checkout started, ask for a rating after delivery). Each row has id, kind, platform, event, delay (for reminders), template info (type, languages, Meta category and approval status on an official number), active, can_toggle, last_sent_at and warnings explaining why an active message might not actually send. Also returns which stores are connected. Use it before set_store_automation_active (which needs kind + id) and to answer "which automatic messages are on?". It does NOT change anything, show message text, edit templates or send test messages.

list_tasks

ChatGPT
List the team's follow-up tasks. Filter by when (overdue, today, upcoming, no_date), by assignee (pass a team member's user id for "my tasks" — the connector has no signed-in user; ids come from get_moderators; "none" for unassigned), by contact, status (open by default) or priority. Overdue and due-today flags are computed in the workspace timezone.

list_tickets

ChatGPT
List support tickets, urgent and soonest-due first. Filter by status, priority, SLA breached / overdue, assignee (a team member's user id, or "none" for unassigned — the connector has no signed-in user, so pass your own id for "my tickets"), contact or a search term (subject, #number, customer name or phone). Each ticket carries its SLA state.

list_whatsapp_templates

ChatGPT
List the WhatsApp message templates (Meta-approved message formats) of this workspace: name, exact language code, category (MARKETING / UTILITY / AUTHENTICATION), Meta review status and the rejection reason when Meta gave one, body text, header type, and the placeholders each template expects (numbered {{1}} or named {{customer_name}}). Each row says whether send_template can send it (only APPROVED, non-carousel templates). Use it before send_template to pick a template and pass its exact name, language and parameters, or to answer "which templates were rejected and why?". Filters: status, category, language, search (name, template id or language); 50 per page. Read-only: it does not create, edit, submit or sync templates with Meta — that is done in the LetsBot panel. Templates exist only on the official WhatsApp Cloud API connection.

lose_deal

ChatGPT
Mark a sales deal as lost. A reason is required: pass lost_reason_id, or reason with the reason's name (e.g. "Price too high"). Call without a reason to get the workspace's list of lost reasons. Nothing is sent to the customer.

mark_as_read

ChatGPT
Mark a conversation as opened in the LetsBot inbox, and send a read receipt to the customer on channels that support one. This affects inbox read state ONLY. It does NOT clear the conversation from get_conversations_awaiting_reply — only sending a reply does that — so do not call this expecting the awaiting-reply backlog to go down.

pin_contact

ChatGPT
Pin or unpin a contact chat so it stays at the top of the list.

reassign_conversations

ChatGPT
Move conversations from one team member to another in one step — e.g. "move Ahmed's waiting chats to Mona". By default only the conversations awaiting a reply (the customer wrote last) move; use scope=all for every open conversation the member holds, or waiting_longer_than_minutes for only the late ones. The giver is removed, the receiver is assigned and notified, and the change is recorded in the conversation history. Get member ids from get_moderators or get_agent_performance.

reply_to_message

ChatGPT
Reply to a specific message in a conversation on any connected platform (WhatsApp, website chat, Messenger, Instagram, Telegram, …).

reschedule_appointment

ChatGPT
Move an active appointment to a new free time (and optionally another staff member). All booking rules apply and the reminders are re-armed for the new time. If the workspace switched on the reschedule notice, the customer is sent it on WhatsApp — confirm is then required.

resend_campaign

ChatGPT
Send a bulk campaign again to the recipients whose message is stuck at "sent" — WhatsApp accepted it but it was never confirmed delivered (phone offline, number inactive). Delivered and read recipients are NOT messaged again. Recipients who never got it yet are included. Real WhatsApp messages that Meta charges for, and someone who did receive it without a delivery receipt may get it twice. Requires confirm: call with confirm=false first for a preview (how many people, template, estimated Meta cost), show it to the user, then confirm=true. Needs the Send Bulk add-on. To continue a stopped campaign use resume_campaign; to stop one use cancel_campaign.

resume_campaign

ChatGPT
Resume a bulk campaign that was stopped (cancel_campaign / Cancel in the panel), finished with recipients left unsent, or stopped because its template header file was missing. Sends the campaign to every recipient who has not received it yet — real WhatsApp messages that Meta charges for. Requires confirm: call with confirm=false first to get a preview (how many people will be messaged, template, estimated Meta cost), show it to the user, then call again with confirm=true. Needs the Send Bulk add-on. Does NOT re-send to people already sent — use resend_campaign for that. Use get_campaign_status to see progress afterwards, cancel_campaign to stop it again.

search_media

ChatGPT
Search the workspace media library (images, videos, audio, documents) by text in the title / tags / alt text, kind, tag, folder, where it came from, or upload date. Each item has a direct url you can pass to send_image / send_video / send_file, and whatsapp_ok tells whether WhatsApp accepts it as-is.

search_messages

ChatGPT
Search messages across all conversations (individual chats and groups), or within one specific contact chat or group.

search_products

ChatGPT
Search for products in the connected e-commerce store. Searches by name in Salla and Zid product catalogs, and in every other connected store (odoo, shopify, woocommerce) by name, SKU or barcode.

send_audio

ChatGPT
Send an audio file or voice note to a WhatsApp number.

send_buttons

ChatGPT
Send an interactive message with buttons to a WhatsApp number. Maximum 3 buttons.

send_contact_card

ChatGPT
Send a contact card (vCard) to a WhatsApp number.

send_file

ChatGPT
Send a document/file to a WhatsApp number. file_url must be a DIRECT url to the file itself. If you generated the file yourself, or it is not already at a direct public url, call upload_file first (it takes the bytes as base64 and returns a url plus the filename to pass here). A Google Drive / Dropbox / OneDrive share link is not a direct url — it points at a download page, and the file arrives as an unopenable "BIN" attachment.

send_image

ChatGPT
Send an image to a WhatsApp number with an optional caption.

send_list

ChatGPT
Send an interactive list/menu message to a WhatsApp number.

send_location

ChatGPT
Send a location to a WhatsApp number.

send_reaction

ChatGPT
Add an emoji reaction to a message in a WhatsApp conversation.

send_template

ChatGPT
Send a WhatsApp-approved message template to a number. Templates are required for sending messages outside the 24-hour window.

send_text_message

ChatGPT
Send a text message to a contact on any connected platform: a WhatsApp number (international format without +, e.g. 201234567890), or the phone / chat_id of a website chat, Messenger, Instagram, Telegram, X or SMS contact exactly as get_conversations_awaiting_reply or get_contacts returns it. The message goes out on the platform the contact wrote from.

send_video

ChatGPT
Send a video to a WhatsApp number with an optional caption.

set_bot_conversation_active

ChatGPT
Turn one bot flow (auto-reply conversation of any type: simple, buttons, template or list) ON or OFF by ID. An OFF flow stays saved but the bot stops answering its keywords. Asking for the state it is already in changes nothing. A buttons/template flow with no buttons, or a list flow with no sections, cannot be turned ON until it is completed in the panel. This does NOT switch the whole bot (use toggle_bot) and does not edit the reply (use update_bot_conversation). Run get_bot_conversations with enabled_only=false to find IDs.

set_conversation_status

ChatGPT
Close a conversation when it is resolved, or reopen it. A closed conversation reopens by itself when the customer writes again. Some workspaces require a closing category and/or a closing note: call with status=closed and no category to get the list of categories and the requirements. Returns the conversation's status afterwards. Closing sends nothing to the customer.

set_store_automation_active

ChatGPT
Turn ONE automatic store message on or off — an order/store notification, an abandoned-cart reminder or an automation reminder — exactly like its toggle in the LetsBot panel. Get kind + id from list_store_automations first. Turning it ON makes LetsBot message the merchant's customers automatically every time the event happens (Meta bills each message on an official WhatsApp number), so only do it when the merchant explicitly asks, and it needs confirm=true after showing the preview. Turning it OFF takes effect immediately and needs no confirmation. It does NOT edit the message text, submit templates to Meta, send a test, or create/delete automations (those are done in the LetsBot panel). Older per-store reminders (legacy_cart_reminder) cannot be switched here.

toggle_bot

ChatGPT
Toggle the bot on or off for a specific contact. When bot is disabled for a contact, automated replies will not be sent.

transfer_to_department

ChatGPT
Transfer a customer conversation to a department: its current agents are taken off it, and an agent of the department gets it now when one is available, on shift and under capacity — otherwise it waits in the department's queue. Nothing is sent to the customer. Get department ids from list_departments.

update_ad_lead_settings

ChatGPT
Configure which label and moderator are auto-applied to contacts that arrive from a Meta Click-to-WhatsApp ad. Pass 0 for either field to clear that setting. Pass nothing to leave both as they were. Run get_labels and get_moderators first to find valid IDs.

update_assignment_rules

ChatGPT
Change how new conversations are automatically given to team members. Pass ONLY the settings to change; everything else stays as it is. Call get_assignment_rules first to see the current values, the teams and the operators you can use. Examples: turn it on with mode="round_robin"; cap each operator at 10 chats with max_open=10; move a chat nobody answered within 15 minutes with reassign_after_minutes=15; set max_open/reassign_after_minutes/team_id/fallback_user_id to null to clear them. A backup operator (fallback_user_id) is required when after_last_hop or when_full is "fallback". Returns the settings before and after. Sends nothing to customers and does not move existing chats by itself (use reassign_conversations for that).

update_bot_conversation

ChatGPT
Update an existing bot auto-reply rule by ID. Only the provided fields change; everything else stays as it was. Run get_bot_conversations first to find the conversation ID.

update_bot_settings

ChatGPT
Update bot and AI settings. Only the specified settings will be updated, others remain unchanged.

update_contact

ChatGPT
Update a contact's information (name, email, etc.).

update_csat_settings

ChatGPT
Change the customer satisfaction survey settings — pass only what changes. Switch surveys on/off (sending), choose the type (csat 1-5 stars, nps 0-10, ces effort), when they are sent (triggers, delay_minutes), how often one customer may be asked (cap_days), on which channels, and the question text per language. Switching sending ON costs money (every survey is a WhatsApp message): that one change needs confirm=true after the user saw the monthly estimate in the preview; every other change saves directly (confirm=false is fine). Read the current values with get_csat_settings.

update_deal

ChatGPT
Update a sales deal: title, amount, currency, stage (move it along the pipeline), owner or expected close date. Moving to a "won" stage wins the deal; to mark it lost use lose_deal (a reason is required). Only the fields you pass change.

update_label

ChatGPT
Rename or recolour an existing contact label by ID. Only the fields you pass change. Run get_labels first to find the ID. Contacts keep the label; they just show the new name/colour.

update_quick_reply

ChatGPT
Update an existing quick reply/canned response by ID. Only the provided fields change; everything else stays as it was. Run get_quick_replies first to find the quick reply ID.

update_social_post

ChatGPT
Edit a Social Studio post that has not been published yet: its text, its media (Social Studio media-library asset IDs), and/or its publish time. Only the fields you pass change; destinations and per-network captions stay as they are. A draft stays a draft (publish_at only pre-fills its time); a scheduled post keeps its schedule and is re-checked against each network's rules. Published or cancelled posts cannot be edited — use create_social_post for a new one. To stop a post from publishing use cancel_social_post; to remove it use delete_social_post. Find post IDs with list_scheduled_social_posts.

update_task

ChatGPT
Update a task: title, description, due time, reminder, priority, assignee or status (todo, in_progress, done). Only the fields you pass change; pass assignee_user_id null to unassign.

update_ticket_status

ChatGPT
Change a support ticket's status: open, pending, on_hold (pauses the resolution clock), resolved or closed. Setting a resolved/closed ticket back to open reopens it. If the workspace switched on the "ticket resolved" customer notification, resolving sends the customer that WhatsApp message — confirm is then required.

upload_file

ChatGPT
Upload a file you already have the bytes of (a PDF you generated, an image, a document) into LetsBot storage, and get back a direct https url. Use this BEFORE send_file / send_image / send_video / send_audio whenever the file does not already live at a public direct url. Do NOT pass a Google Drive, Dropbox or OneDrive share link to the send tools: those point at a download page rather than at the file, so WhatsApp shows an unopenable "BIN" attachment. Each call stores a new copy at a new url — if you already have a url from this tool, reuse it instead of uploading again.

upsert_booking_service

ChatGPT
Create a bookable appointment service (omit service_id; name and duration_minutes required) or update one (pass service_id plus only the fields to change). Set is_active=false to stop new bookings for a service without losing its history. staff_ids replaces the list of team members who deliver it (they become booking staff). Does not delete services and does not change working hours (LetsBot → Booking → Settings). Get ids from get_booking_settings.

upsert_department

ChatGPT
Create a department (team) that conversations are routed to (omit team_id; name required), or update one (pass team_id plus only what changes): name, members (member_user_ids REPLACES the member list), description, the name customers see, business hours + timezone, channels it handles, default priority, skills, and how it picks an agent (round_robin, least_open, skills). Removing members needs confirm=true after the user saw who is removed; anything else saves directly (confirm=false is fine). Does not delete departments, edit routing rules, or switch on the paid out-of-hours reply (LetsBot → Routing). Get ids from get_routing_settings; user ids from get_moderators.

upsert_pipeline

ChatGPT
Create a new sales pipeline (omit pipeline_id) — it starts with one open stage plus Won and Lost; add more stages with upsert_pipeline_stage — or update an existing one (pass pipeline_id): rename it, change its currency, or make it the default pipeline. Existing deals keep their own amounts and currency. Does not delete pipelines (that is done in LetsBot → Deals → Settings). Get ids from get_deal_pipelines.

upsert_pipeline_stage

ChatGPT
Add a stage to a sales pipeline (pass pipeline_id + name; omit stage_id) or update a stage (pass stage_id plus only the fields to change: name, color, probability, kind). A new open stage is placed before the Won / Lost columns. The kind of a stage that holds deals cannot change, and every pipeline keeps at least one open stage. Does not delete or reorder stages (done in LetsBot → Deals → Settings). Get ids from get_deal_pipelines.

upsert_ticket_type

ChatGPT
Create a ticket type (omit type_id; e.g. "Refund request", "Delivery issue") or update one (pass type_id plus the fields to change). is_active=false hides a type from new tickets while existing tickets keep it. Does not delete types (LetsBot → Tickets → Settings). Get ids from get_ticket_settings.

win_deal

ChatGPT
Mark a sales deal as won. It moves to the pipeline's "won" stage and counts in the won revenue. Nothing is sent to the customer.

ai_analyze_contact

Claude

ai_dashboard_summary

Claude

ai_employee_performance

Claude

ai_improve_message

Claude

ai_sentiment_analysis

Claude

ai_suggest_reply

Claude

ai_summarize_conversation

Claude

ai_team_report

Claude

ai_translate_message

Claude

archive_contact

Claude

assign_label

Claude

assign_moderator

Claude

block_contact

Claude

create_campaign

Claude

create_contact

Claude

create_interactive_conversation

Claude

create_label

Claude

create_quick_reply

Claude

create_simple_conversation

Claude

forward_message

Claude

get_ad_lead_settings

Claude

get_bot_conversations

Claude

get_bot_settings

Claude

get_bot_status

Claude

get_campaign_status

Claude

get_campaigns

Claude

get_contact

Claude

get_contacts

Claude

get_label_contacts

Claude

get_labels

Claude

get_messages

Claude

get_moderators

Claude

get_my_chats

Claude

get_order_status

Claude

get_quick_replies

Claude

get_unread_contacts

Claude

mark_as_read

Claude

pin_contact

Claude

reply_to_message

Claude

search_messages

Claude

search_products

Claude

send_audio

Claude

send_buttons

Claude

send_contact_card

Claude

send_file

Claude

send_image

Claude

send_list

Claude

send_location

Claude

send_reaction

Claude

send_template

Claude

send_text_message

Claude

send_video

Claude

toggle_bot

Claude

update_ad_lead_settings

Claude

update_bot_conversation

Claude

update_bot_settings

Claude

update_contact

Claude

update_quick_reply

Claude

Capabilities

Writes

App Stats

212

Tools

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily