- Brand
- LetsBot
- Category
- Customer Support
- Primary Subcategory
- AI Chat & Messaging Agents
Integration details
Description
LetsBot lets you manage your WhatsApp business conversations directly from ChatGPT. Send and receive messages, manage contacts and labels, use AI-powered auto-replies, and integrate with Salla & Zid e-commerce platforms. Perfect for businesses using WhatsApp for customer support and sales.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- AI Chat & Messaging Agents
- Secondary Subcategories
- None listed
- Brand
- LetsBot
- Access
- Account required
- First tracked
- 2026-05-27
- Tool count
- 165
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for LetsBot
Get updates when LetsBot’s Discoverability Score or category rank changes.
Competing in ChatGPT AI Chat & Messaging Agents
View Category165 tools agents can invoke
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_crm_note
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_deal_item
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.
add_ticket_note
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_note
Archive or unarchive a contact chat.
archive_contact
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_label
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_moderator
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.
assign_ticket
Block or unblock a WhatsApp contact.
block_contact
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.
book_appointment
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.
draft_bot_flow
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_appointment
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_scheduled_activity
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.
cancel_social_post
Change how the workspace's AI assistant automatically answers the business's real customers on WhatsApp (and any other connected chat channel it answers). The change applies to the next customer messages straight away, the previous values are overwritten, and turning ai_replies_enabled on makes the AI reply to customers by itself (each reply uses an AI credit). Pass ONLY the settings the merchant asked to change, inside "settings": ai_replies_enabled (bool), instructions (the full new instructions text — read them first with get_ai_assistant_settings and keep what the merchant did not ask to remove), working_hours (weekly schedule object or null), outside_hours_message_enabled (bool), outside_hours_message, pause_bot_after_handoff (bool), pause_after_manual_reply_minutes (0-1440), count_mcp_as_manual_reply (bool, default false — when true, messages sent through MCP tools like this one pause the bot for pause_after_manual_reply_minutes; when false they never pause it), count_api_as_manual_reply (bool, default false — the same for messages sent through the REST API; LetsBot's own automatic notices never count), transfer_voice_to_agent (bool), voice_note_mode (reply|silent|react), extra_rules, timezone, and dialect / tone when get_ai_assistant_settings lists them.
update_ai_assistant_settings
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_conversation_status
Mark a task as done. A recurring task automatically gets its next occurrence. Nothing is sent to the customer.
complete_task
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. A customer who wrote to two of your WhatsApp numbers has one conversation per number: each number still waiting is its own row (whatsapp_channel_id) — reply on THAT number by passing channel_id to the send tool.
get_conversations_awaiting_reply
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_campaign
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_company
Create a new WhatsApp contact in the system. Optionally set the workspace's contact custom fields in the same call (custom_fields: key → value).
create_contact
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_deal
Create an interactive bot conversation with buttons. When triggered, shows a message with clickable button options that lead to different responses.
create_interactive_conversation
Create a new label/tag for organizing contacts.
create_label
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_product
Create a new quick reply/canned response. Quick replies let agents send pre-written messages instantly.
create_quick_reply
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_quote
Create a simple bot auto-reply rule. When a customer sends a message matching the trigger keyword, the bot replies with the specified text. With "ask_contact" the reply asks for the customer's phone number or e-mail with a one-tap Messenger button (text only on other channels); "confirmation" is then sent once after the customer taps it.
create_simple_conversation
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_social_post
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_task
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_ticket
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.
create_whatsapp_template
Create a new abandoned-cart reminder step (omit id) or edit one (pass its id from list_store_automations, kind cart_reminder): when it is sent after the cart is abandoned (delay_value + delay_unit), its message text per language, the minimum cart total, and whether it is on. While it is on, LetsBot sends it automatically on WhatsApp to the store's real customers who leave a cart, so editing an active reminder changes what those customers receive from then on; the previous text and settings are not kept. A new reminder is created switched OFF unless the merchant asked to switch it on. Use {customer_name}, {cart_total}, {cart_link} style variables only if the merchant wants them.
save_cart_reminder
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_booking_service
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_department
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_pipeline_stage
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
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.
upsert_ticket_type
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_bot_conversation
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_label
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_quick_reply
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.
delete_social_post
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_contact
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.
diagnose_messaging
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.
duplicate_bot_conversation
Edit ONE automatic store notification (order status, verification code/OTP, welcome, review request …) that LetsBot sends on WhatsApp to the store's real customers when that event happens: change its message text in one or more languages, which languages are sent, its image/video/file (an https link), and/or switch it on (customers start receiving it automatically) or off (they stop receiving it). The previous text and media are overwritten, not kept. On a QR-connected number customers get the new text from the next notification; on an official (Cloud API) number WhatsApp keeps sending the copy Meta approved until the merchant syncs the new text to Meta in the panel. This tool itself never submits anything to Meta. Read it first with get_notification_template, keep every {variable} the merchant still wants, and only change what the merchant asked for.
update_notification_template
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.
find_duplicates
Forward a message from one WhatsApp chat to another.
forward_message
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.
generate_social_post_from_product
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_abandoned_carts
LetsBot ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve LetsBot's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are LetsBot alternatives on ChatGPT?
As of 2026-11-02, LetsBot competes with Actually Asked, Alhena AI, Asyntai, Bedones, Bravos AI, BubblaV AI Chatbot, call4me, Capi Agent for Merchants and 40 more in ChatGPT AI Chat & Messaging Agents, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.