HellouOne
Server Details
Customer conversations, contacts, inboxes, agents, automations and reports of a HellouOne account.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 184 tools
Descriptions are unusually detailed and do differentiate most tools, but with 184 tools there are real boundary collisions: list_calls vs list_call_history (two call-history endpoints), conversation_list vs conversation_filter vs conversation_list_meta vs get_live_conversation_metrics vs list_all_conversation_statistics, and create_campaign vs create_voice_campaign/create_whatsapp_campaign all overlap. Several near-duplicate membership tools (add_team_member vs update_agents_in_team, add_inbox_member vs update_agents_in_inbox) force the agent to read prose to pick correctly.
Most tools follow verb_noun snake_case (list_labels, create_macro, delete_article), but a sizable minority break the pattern: noun-first names (contact_filter, conversation_list, new_conversation, contact_conversations), verb-last (contactable_inboxes_get), and verbose legacy forms (get_details_of_a_single_custom_attribute, create_a_new_message_in_a_conversation, update_a_custom_filter). Readable, but not a predictable convention.
184 tools is far past any reasonable single-server scope; the surface spans contacts, conversations, inboxes, teams, labels, macros, automations, help-center portals, knowledge base, three campaign types, WhatsApp Flows, Facebook Lead Ads, ElevenLabs, connectors and reporting. Even with good descriptions this volume makes tool selection error-prone and context-heavy.
Coverage is remarkably broad, with near-complete CRUD lifecycles for contacts, conversations, labels, macros, teams, help-center articles, campaigns and WhatsApp Flows. Minor gaps remain: no inbox create/delete, no conversation delete, no tool to update an AI agent definition despite get_native_bot_definition referencing an update endpoint, and no create for agent bots.
Available Tools
184 toolsadd_inbox_memberAdd inbox memberBDestructiveInspect
Add an agent to an inbox so they can see and reply to its conversations.
Inputs: user_id (required), inbox_id (required).
add_new_category_to_accountAdd a new categoryCDestructiveInspect
Add a new category. Add a new category to portal Requires feature: help_center.
Inputs: portal_id (required), name, slug, locale, +4 more.
add_new_portal_to_accountAdd a new portalBDestructiveInspect
Add a new portal. Add a new portal to account Requires feature: help_center.
Inputs: name, slug, color, config, +5 more.
add_team_memberAdd team memberCDestructiveInspect
Add a person to a team.
Inputs: team_id (required), user_id (required).
add_voice_campaign_contactsAdd voice campaign contactsADestructiveInspect
Add contacts to a voice campaign that is still a DRAFT (not scheduled, running or archived; an outbound AI campaign). A scheduled campaign launches on the consent given for the list it has, so clone it and add them to the clone: contact_rows (phone, name, variables, fallback group and order) or contact_ids, one of them, at most 2000 at a time. A phone the campaign already holds is skipped. Bad phones refuse the whole call. Do-not-call numbers and duplicates are flagged afterwards in validation_summary. The answer says how many were inserted and the campaign's total. It places no call.
Inputs: campaign_id (required), contact_ids, contact_rows.
assign_a_conversationAssign ConversationCDestructiveInspect
Assign Conversation. Assign a conversation to an agent or a team.
Inputs: conversation_id (required), team_id, assignee_id.
cancel_voice_campaignCancel voice campaignADestructiveInspect
CANCEL a running, paused or scheduled voice campaign for good: no more calls, and it cannot be started again (clone it or follow it up for a new one). Contacts and results stay readable.
Inputs: campaign_id (required).
cancel_whatsapp_campaignCancel a campaignADestructiveInspect
Cancel a campaign. Ends the campaign for good. Recipients not yet sent are marked unknown; those already sent keep their delivery status. A campaign that is already completed, cancelled or failed answers 422 with reason: already_finished. A draft can be cancelled too. Administrators only. Requires feature: whatsapp_campaigns.
Inputs: id (required).
check_whatsapp_flowCheck WhatsApp flowARead-onlyInspect
Run the compliance check on a WhatsApp Flow and read the findings: structure problems (a screen nothing navigates to, a missing footer, text past its limit) and WhatsApp policy problems (asking for card numbers, targeting minors, a category that does not match the content). Each finding names the rule, its severity and the JSON pointer it fired on. publishable is false while any error stands.
Inputs: flow_id (required), fields.
clone_voice_campaignClone voice campaignADestructiveInspect
Copy a voice campaign's configuration (AI line and settings, calling window, pacing, attempts) into a new DRAFT with no contacts, no consent and no program link; add its contacts with add_voice_campaign_contacts, then launch it. Any outbound AI campaign can be cloned, archived ones too. The answer has the new campaign.
Inputs: campaign_id (required), title.
contactable_inboxes_getGet Contactable InboxesCRead-onlyIdempotentInspect
Get Contactable Inboxes. Get List of contactable Inboxes.
Inputs: id (required), fields.
contact_add_labelsAdd LabelsADestructiveInspect
Add Labels. Sets the labels of a contact to exactly the list sent: a label left out is removed, so send the current labels with the new ones to keep them.
Inputs: contact_identifier (required), labels.
contact_conversationsContact ConversationsCRead-onlyIdempotentInspect
Contact Conversations. Get conversations associated to that contact.
Inputs: id (required), fields.
contact_filterContact FilterCRead-onlyInspect
Contact Filter. Filter contacts with custom filter options and pagination.
Inputs: page, fields, payload.
contact_inbox_creationCreate contact inboxCDestructiveInspect
Create contact inbox. Create a contact inbox record for an inbox.
Inputs: id (required), inbox_id (required), source_id.
conversation_add_labelsAdd LabelsADestructiveInspect
Add Labels. Sets the labels of a conversation to exactly the list sent: a label left out is removed, so send the current labels (from get_conversation) with the new ones to keep them.
Inputs: conversation_id (required), labels.
conversation_filterConversations FilterCRead-onlyInspect
Conversations Filter. Filter conversations with custom filter options and pagination.
Inputs: page, fields, payload.
conversation_listConversations ListCRead-onlyIdempotentInspect
Conversations List. List all the conversations with pagination.
Inputs: q, page, fields, labels, +4 more.
conversation_list_metaGet Conversation CountsCRead-onlyIdempotentInspect
Get Conversation Counts. Get open, unassigned and all Conversation counts.
Inputs: q, fields, labels, status, +2 more.
create_a_custom_filterCreate a custom filterCDestructiveInspect
Create a custom filter. Create a custom filter in the account Requires feature: crm when the filter is a contact filter (filter_type = contact).
Inputs: name, query, filter_type.
create_a_new_message_in_a_conversationCreate New MessageCDestructiveInspect
Create New Message. Create a new message in the conversation.
Inputs: content (required), conversation_id (required), private, content_type, +3 more.
create_articleCreate articleADestructiveInspect
Create a new help center article. It is created as a draft; call update_article with status published to publish it. author_id is the person shown as the author and defaults to you; pass an agent id from list_agents to credit someone else. Content is markdown.
Inputs: title (required), content (required), portal_slug (required), author_id, +2 more.
create_automation_ruleCreate automation ruleADestructiveInspect
Create an automation rule: when EVENT happens and CONDITIONS match, run ACTIONS. The conditions and actions schemas list the exact attribute keys, operators and values each event accepts. The ids and titles an action or condition needs come from list_labels, list_agents, list_teams and list_inboxes. Actions that call an external address or send attachments are not available.
Inputs: name (required), actions (required), conditions (required), event_name (required), +2 more.
create_campaignCreate campaignADestructiveInspect
Create a campaign. The kind follows the inbox: a website inbox gets an ongoing campaign (the message is offered in the widget), an SMS inbox gets a one-off campaign sent at scheduled_at to the contacts of the labels in audience. No other inbox type is accepted: a WhatsApp campaign is composed by the administrator at Campaigns -> WhatsApp, because WhatsApp only allows approved templates. Call list_inboxes and list_labels first. This sends messages to real customers.
Inputs: title (required), message (required), inbox_id (required), enabled, +5 more.
create_canned_responseCreate canned responseBDestructiveInspect
Create a new canned response (saved reply). short_code is what an agent types after "/" to insert it; content is the text that gets inserted.
Inputs: content (required), short_code (required).
create_contactCreate contactADestructiveInspect
Create a new contact. A contact needs at least a name; email, phone_number and identifier must each be unique in the account. This does not start a conversation.
Inputs: name (required), email, identifier, phone_number, +2 more.
create_custom_attributeCreate custom attributeBDestructiveInspect
Create a new custom attribute. attribute_key is the permanent identifier used by filters, automations and bots (lowercase letters, digits and underscores); it cannot be changed afterwards. Pass attribute_values for a list.
Inputs: attribute_key (required), attribute_model (required), attribute_display_name (required), attribute_display_type (required), +4 more.
create_kb_documentCreate KB documentBDestructiveInspect
Add a knowledge base document the bot will answer from. Provide either content (manual text) or a public source_url to crawl.
Inputs: title (required), category (required), content, source_url.
create_labelCreate labelBDestructiveInspect
Create a new conversation label. The title is an identifier: lowercase letters, digits, hyphens and underscores, no spaces. color is a hex value like "#6C6C6C". show_on_sidebar defaults to true, as in the dashboard.
Inputs: title (required), color, description, show_on_sidebar.
create_macroCreate macroADestructiveInspect
Create a macro: a named sequence of actions an agent runs on a conversation with one click. Call list_agents, list_teams or list_labels first when an action needs an id or a label. visibility global means every agent sees it.
Inputs: name (required), actions (required), visibility (required).
create_teamCreate teamBDestructiveInspect
Create a team. Team names are stored in lowercase.
Inputs: name (required), icon, icon_color, description, +1 more.
create_voice_campaignCreate voice campaignADestructiveInspect
Create an AI voice campaign as a DRAFT: it places no call until it is launched. It is outbound and run by the AI agent of an AI phone line (voice_line_id). Give it its contacts in the same call: contact_rows (phone, name, variables the AI agent reads, optional fallback group and order), or contact_ids of existing contacts, or a label/segment audience (audience_type with audience). Send exactly one of them. Phone numbers are checked right away (a bad one refuses the whole call and says which rows); do-not-call numbers and duplicates are flagged afterwards and read in validation_summary. idempotency_key is required: reuse the same one when you retry, so no second campaign is made. The answer has the campaign id, which every other voice campaign tool takes, and contacts_import. Consent is not part of creating: it is attested when launching.
Inputs: title (required), voice_line_id (required), idempotency_key (required), ends_at, +14 more.
create_whatsapp_flow_from_templateCreate WhatsApp flow from templateBDestructiveInspect
Open a new WhatsApp Flow draft from a gallery template on the WhatsApp Cloud inbox named. The draft reaches no customer until it is published.
Inputs: name (required), inbox_id (required), template_slug (required).
delete_a_custom_filterDelete a custom filterCDestructiveIdempotentInspect
Delete a custom filter. Delete a custom filter from the account Requires feature: crm when the filter is a contact filter (filter_type = contact).
Inputs: custom_filter_id (required).
delete_a_messageDelete a messageBDestructiveIdempotentInspect
Delete a message. Delete a message and it's attachments from the conversation.
Inputs: message_id (required), conversation_id (required).
delete_articleDelete articleADestructiveIdempotentInspect
Delete a help center article. Archiving it (update_article, status archived) keeps the text.
Inputs: article_id (required), portal_slug (required).
delete_automation_ruleDelete automation ruleADestructiveIdempotentInspect
Delete an automation rule. Consider toggle_automation_rule instead when the administrator may want it back.
Inputs: automation_rule_id (required).
delete_campaignDelete campaignADestructiveIdempotentInspect
Delete a campaign. Messages it already sent stay in their conversations.
Inputs: campaign_id (required).
delete_canned_responseDelete canned responseADestructiveIdempotentInspect
Delete a canned response. Replies already sent with it are not affected.
Inputs: canned_response_id (required).
delete_categoryDelete a categoryBDestructiveIdempotentInspect
Delete a category. Deletes a category of a portal. Requires feature: help_center.
Inputs: category_id (required), portal_slug (required).
delete_contactDelete contactADestructiveIdempotentInspect
Delete a contact. Its conversations and their messages go with it and cannot be restored. A contact who is online right now, or who is on an AI phone call, cannot be deleted.
Inputs: contact_id (required).
delete_custom_attributeDelete custom attributeADestructiveIdempotentInspect
Delete a custom attribute. The values already stored on conversations or contacts stop being shown.
Inputs: attribute_id (required).
delete_kb_documentDelete KB documentADestructiveIdempotentInspect
Delete a knowledge base document and its indexed chunks.
Inputs: document_id (required).
delete_labelDelete labelBDestructiveIdempotentInspect
Delete a label. It disappears from every conversation that carries it and from automations that add it.
Inputs: label_id (required).
delete_macroDelete macroBDestructiveIdempotentInspect
Delete a macro. Conversations it already acted on are not affected.
Inputs: macro_id (required).
delete_portalDelete a portalADestructiveIdempotentInspect
Delete a portal. Deletes a help center portal with its categories and articles. Requires feature: help_center.
Inputs: portal_slug (required).
delete_teamDelete teamADestructiveIdempotentInspect
Delete a team. Its members keep their access; conversations assigned to the team lose that assignment.
Inputs: team_id (required).
delete_voice_campaignDelete a voice campaignADestructiveIdempotentInspect
Delete a voice campaign. Deletes a campaign. Only draft campaigns can be deleted; end a running one with Cancel. Administrators only. Requires feature: contact_center.
Inputs: display_id (required).
delete_whatsapp_campaignDelete a campaignADestructiveIdempotentInspect
Delete a campaign. Deletes the campaign and its recipient rows, in any status. Messages already sent are not recalled. To stop a campaign but keep its delivery history, cancel it instead. Administrators only. Requires feature: whatsapp_campaigns.
Inputs: id (required).
delete_whatsapp_flowDelete WhatsApp flowADestructiveIdempotentInspect
Delete a WhatsApp Flow draft. Drafts only: a published flow is retired with deprecate_whatsapp_flow instead, which keeps its history and answers.
Inputs: flow_id (required).
deprecate_whatsapp_flowDeprecate WhatsApp flowADestructiveInspect
Deprecate a published WhatsApp Flow: it can no longer be sent to customers, while its versions and the answers customers already gave are kept. Only a published flow can be deprecated, and it cannot be brought back — a replacement is a new draft.
Inputs: flow_id (required).
disable_facebook_page_leadsDisable Lead Ads on a PageADestructiveInspect
Disable Lead Ads on a Page. Unsubscribes the Page from Meta's lead notifications. Messenger keeps working, and leads already received are kept. Administrators only. Requires feature: facebook_marketing.
Inputs: id (required).
enable_facebook_page_leadsEnable Lead Ads on a PageADestructiveInspect
Enable Lead Ads on a Page. Checks that the Page's token carries the leads_retrieval and pages_manage_ads permissions, subscribes the Page to Meta's lead notifications, and starts a background sync of its lead forms. Leads are only marked enabled once Meta has accepted the subscription. Administrators only. Requires feature: facebook_marketing.
Inputs: id (required).
execute_macroRun a macroADestructiveInspect
Run a macro. Runs a macro's actions on the conversations named, in the background, as the person making the request. The response does not wait for the actions to finish. Requires feature: macros.
Inputs: macro_id (required), conversation_ids (required).
follow_up_voice_campaignFollow up voice campaignADestructiveInspect
Start a follow-up of a voice campaign: a new DRAFT with the same configuration and the contacts that were not reached (no answer, busy, failed, out of attempts, and every member of a group where nobody was reached). It has no consent and places no call; launch it when ready. Refused when there is nobody to follow up.
Inputs: campaign_id (required).
get_account_summaryGet account summaryBRead-onlyIdempotentInspect
Get the account name, locale, domain, support email, status and enabled features.
Inputs: fields.
get_agent_reportGet agent reportARead-onlyIdempotentInspect
Per-agent performance over the last N days: conversations handled and average resolution, first response and reply times in seconds. Rows are keyed by agent id — call list_agents to name them.
Inputs: days, fields.
get_articleGet articleBRead-onlyIdempotentInspect
Get one help center article with its full content, status, category, views and position.
Inputs: article_id (required), portal_slug (required), fields.
get_assignment_settingsGet assignment settingsARead-onlyIdempotentInspect
Read Settings → Assignment: the agent visibility mode (who sees which conversations), whether auto-assignment only picks agents who are online, whether a customer's thank-you after a resolve keeps the conversation resolved, and the priority tier of every inbox and team member. Call before making any assignment or visibility change.
Inputs: no named parameters.
get_bot_schemasDescribe what an AI agent is made ofARead-onlyIdempotentInspect
Describe what an AI agent is made of. Every configuration section, flow step kind and rule condition an AI agent can use, each with English and Spanish labels and its JSON Schema, plus the models an agent may run on and which of the bot features this account has. A form or flow editor can be generated from it without knowing any kind in advance. Administrators only..
Inputs: fields.
get_business_profileGet business profileARead-onlyIdempotentInspect
Read what this account has recorded about its business: what it sells, who writes in, the tone it wants, its languages, opening hours and escalation policy. Fields not filled in yet are empty.
Inputs: fields.
get_callGet a callARead-onlyIdempotentInspect
Get a call. One call from the history. Returns 404 for a call in a conversation you cannot open. Requires feature: whatsapp_calling for a WhatsApp call, voice_agents for an AI call, voice_integrations for an imported call.
Inputs: id (required), fields.
get_campaignGet campaignBRead-onlyIdempotentInspect
Get one campaign with its message, audience and schedule.
Inputs: campaign_id (required), fields.
get_connectorGet a connectorARead-onlyIdempotentInspect
Get a connector. Returns one connector card with the account's install, if any. Poll this after connecting or changing a connector: attaching it to each bot happens in the background, and install.bots[].status / install.attach_summary show progress. Administrators only. Requires feature: bot_connectors.
Inputs: id (required), fields.
get_contactGet contactCRead-onlyIdempotentInspect
Get one contact with its attributes.
Inputs: contact_id (required), fields.
get_contact_center_live_overviewGet contact center live overviewBRead-onlyIdempotentInspect
What is happening right now across the account: campaigns running or paused with their agents per state (ready, ringing, in_call, wrap_up, paused, offline) and active calls, a summary, and supervisor alerts (a break over its limit, a running campaign with contacts pending and nobody to take them).
Inputs: fields.
get_contact_memoryGet contact memoryARead-onlyIdempotentInspect
Get what the account knows about a contact from its other channels, newest first: summaries of earlier phone calls, voice campaign outcomes and WhatsApp campaign messages that reached them (HEL-498). Read only; use it to answer "what happened with this customer before". window_days looks back 1 to 180 days (default 30).
Inputs: contact_id (required), fields, window_days.
get_conversationGet conversationARead-onlyIdempotentInspect
Get one conversation by its number: status, priority, inbox_id, labels, the assignee (a person), ai_assignee (the AI agent answering it), team and contact (id and name each, null when unset), unread_count, and created_at / last_activity_at as unix seconds.
Inputs: conversation_id (required), fields.
get_conversation_reportGet conversation reportARead-onlyIdempotentInspect
Conversation totals for this account over the last N days: conversations, incoming and outgoing messages, resolutions, and average first response / resolution / reply times in seconds. Use it for questions about volume or response times.
Inputs: days, fields.
get_decision_summaryGet decision summaryARead-onlyIdempotentInspect
Summarize the account's AI classifications (short automatic checks of a customer message or a lead) for a date range. use_cases: each account-level use case (fb_lead, consent_intent, sentiment, campaign_reply, inbox_routing, courtesy) with its mode (off, shadow, review, enforce) and the effective mode, capped by platform_mode. bots: AI agents with smart routing on. by_purpose: per use case, ok / failed / skipped (with reason codes) and acted, the number that changed something in the range. bands: per question, how many crossed the bar to act or to ask a person; one conversation can cross several. usage: classifications this billing period and the plan allowance (null = no limit).
Inputs: since, until, fields.
get_details_of_all_integrationsList all the IntegrationsARead-onlyIdempotentInspect
List all the Integrations. Get the details of all Integrations available for the account Requires feature: integrations.
Inputs: fields.
get_details_of_a_single_account_agent_botGet an agent bot detailsBRead-onlyIdempotentInspect
Get an agent bot details. Get the details of an agent bot in the account Requires feature: any of agent_bots, native_bots, voice_agents.
Inputs: id (required), fields.
get_details_of_a_single_automation_ruleGet a automation rule detailsCRead-onlyIdempotentInspect
Get a automation rule details. Get the details of a automation rule in the account.
Inputs: id (required), fields.
get_details_of_a_single_custom_attributeGet a custom attribute detailsCRead-onlyIdempotentInspect
Get a custom attribute details. Get the details of a custom attribute in the account.
Inputs: id (required), fields.
get_details_of_a_single_custom_filterGet a custom filter detailsBRead-onlyIdempotentInspect
Get a custom filter details. Get the details of a custom filter in the account Requires feature: crm when the filter is a contact filter (filter_type = contact).
Inputs: custom_filter_id (required), fields.
get_elevenlabs_integrationGet elevenlabs integrationARead-onlyIdempotentInspect
Read whether the account has connected its own ElevenLabs workspace: status (connected, error = ElevenLabs refused the key three times so calls stopped importing, disconnected), region, the last four characters of the key, the last error code and when calls were last imported. integration is null until it has been connected. The key is never returned. Connecting, changing the key and disconnecting happen in Settings -> Integrations -> ElevenLabs.
Inputs: fields.
get_facebook_campaign_insightsGet Facebook campaign insightsARead-onlyIdempotentInspect
Ad results for one ad account from Meta, at campaign, adset or ad level, for a range of at most 90 days: spend (in the account currency), impressions, clicks, ctr, cpc, leads and cost_per_lead. Campaign rows also carry what happened on our side: received (leads that reached HellouOne), whatsapp_sent, replied, qualified (hot or warm leads) and cost_per_qualified_lead (spend / qualified).
Inputs: ad_account_id (required), level, since, until, +1 more.
get_facebook_leadGet a lead with its answersARead-onlyIdempotentInspect
Get a lead with its answers. Returns one lead including the answers submitted on the form. Answers are personal data and are stored encrypted; only this endpoint and the list with include=answers return them. Administrators only. Requires feature: facebook_marketing.
Inputs: id (required), fields.
get_facebook_lead_formGet a lead formARead-onlyIdempotentInspect
Get a lead form. Administrators only. Requires feature: facebook_marketing.
Inputs: id (required), fields.
get_facebook_marketing_overviewGet Facebook marketing overviewARead-onlyIdempotentInspect
Summarize this account's Facebook Lead Ads leads for a date range: how many arrived (received), how many were sent a WhatsApp template (processed), how many only became a contact (contact_only, with skip_reasons: no_phone, invalid_phone, no_consent, stale = older than 24h, no_routing = follow-up off for the form, template_unavailable), how many failed to be read from Meta, how many replied, how many were qualified (hot or warm) and leads by tier (by_tier), and leads per day. qualification_tier: hot, warm (both count as qualified), cold, spam, needs_review (a person should look), unscored (lead qualification off for the account, the lead was too old, or it could not be scored). Spanish names of the tiers: caliente, tibio, frío, por revisar, spam, sin calificar.
Inputs: since, until, fields.
get_inboxGet inboxARead-onlyIdempotentInspect
Get one inbox with its full settings (greeting, business hours, CSAT, auto-assignment) and the AI agent attached to it (agent_bot: id and name, null when none is).
Inputs: inbox_id (required), fields.
get_inbox_agent_botShow Inbox Agent BotCRead-onlyIdempotentInspect
Show Inbox Agent Bot. See if an agent bot is associated to the Inbox.
Inputs: id (required), fields.
get_inbox_membersList Agents in InboxCRead-onlyIdempotentInspect
List Agents in Inbox. Get Details of Agents in an Inbox.
Inputs: inbox_id (required), fields.
get_kb_documentGet KB documentBRead-onlyIdempotentInspect
Get one knowledge base document including its content.
Inputs: document_id (required), fields.
get_live_conversation_metricsGet live conversation metricsARead-onlyIdempotentInspect
How many conversations are open right now, and how many of those are unattended, unassigned or pending. A snapshot, not a period: it ignores any date range.
Inputs: fields.
get_native_bot_definitionGet an AI agent's definitionARead-onlyIdempotentInspect
Get an AI agent's definition. Returns the whole definition of an AI agent (an agent bot of type native) as one document: its agent settings, every configuration section, its handover areas, its pre-AI rules and its tools. Send it back, edited, to the update endpoint together with the version you read. Administrators only. Requires feature: native_bots.
Inputs: id (required), fields.
get_onboarding_stateGet onboarding stateARead-onlyIdempotentInspect
Read the setup checklist: which track the account picked (ai = a bot answers first, human = the team answers), and which steps are done (business profile, inbox, bot on the inbox, team invited, first conversation). Use it to say what is left to set up.
Inputs: fields.
get_sentiment_reportGet sentiment reportARead-onlyIdempotentInspect
Customer sentiment over the last N days (Reports -> Sentiment), one conversation at a time. summary: conversations read (unread = could not be read, left out of rates), ending_negative_rate, net_sentiment (% closing positive minus % closing negative, -100..100), opened_negative and recovery_rate (of the conversations that opened negative, how many closed neutral or positive), worsened_rate, attention_now. matrix: opening -> closing counts. breakdown.agents credits each conversation to whoever handled it at its last burst (handler bot = the AI agent); recovery_rate is the fair measure of an agent, since it does not depend on how many negative conversations they inherited, and low_sample marks a row with too few conversations to judge. Also frustration by inbox (levels: tranquilo, molesto, frustrado, hostil in Spanish), flags (asked for a person, churn risk, abusive language, minutes until an agent replied), quality (CSAT by closing sentiment, response and resolution times by opening sentiment) and the conversations that need attention now (attention: the 10 most recently active; summary.attention_now is the total). Sentiment is recorded only while it runs in enforce mode, so all zeros usually means it is off or still in shadow. The product calls it "sentimiento" in Spanish. channel=voice keeps the AI phone calls, channel=chat the rest.
Inputs: days, fields, channel.
get_teamGet teamARead-onlyIdempotentInspect
Get one team: its name, description, icon and colour, and whether conversations are auto-assigned to its members.
Inputs: team_id (required), fields.
get_team_reportGet team reportARead-onlyIdempotentInspect
Per-team performance over the last N days, same metrics as get_agent_report. Rows are keyed by team id — call list_teams to name them.
Inputs: days, fields.
get_voice_campaignGet voice campaignARead-onlyIdempotentInspect
Get one voice campaign: status, direction, dialer mode, queues (inbound), schedule and progress counters. An AI voice campaign (handler_type voice_ai) names its AI phone line and its settings: the opening, the dispositions the AI agent records, the facts it collects, the voicemail behaviour and the hot-lead route.
Inputs: campaign_id (required), fields.
get_voice_campaign_reportGet voice campaign reportBRead-onlyIdempotentInspect
Per-agent results of one voice campaign: contacts handled, calls left without a disposition (timeout) and the average handle time in seconds, plus the campaign-wide average. An AI voice campaign (handler_type voice_ai) also has ai: calls placed and answered, AI minutes, transfers to people, voicemails, opt-outs, hot leads, call backs still due, the contacts per disposition and by_decided_by (who decided each outcome: ai_agent, jev = an AI check during the call, post_call = the summary, human, system). ai.dial_causes counts the calls that reached nobody by cause (voicemail_detected, busy, declined, unavailable, no_answer, number_not_found, no_route, carrier_rejected, timeout, platform_error, unknown) and ai.unreached splits the contacts not reached into failed, no_answer, voicemail, no_conversation (the call broke off during the opening, or its summary was undetermined) and other. ai.undecided counts the calls that ended with no disposition (neither the AI agent nor the summary chose one) by reason: undetermined, missing, unknown (a key the campaign does not have), failed (no summary). A campaign that chains people per group (for example a company whose authorized people are called one after another) also has fallback_groups: groups reached and at which person (reached_by_order), still open, not reached, and with no valid number. interest.counts counts the contacts by interest (interested, undecided, not_interested, not_presented) and interest.interested_groups the groups with someone interested (null without groups). ai.answered_by_person counts the calls a person picked up, while ai.answered also counts voicemail, call screeners and carrier announcements.
Inputs: campaign_id (required), fields.
get_whatsapp_campaignGet WhatsApp campaignARead-onlyIdempotentInspect
Get one WhatsApp campaign with its progress: stats counts recipients by status (queued, sending, sent, delivered, read, failed, and skipped_* for contacts deliberately not messaged: opted out, Meta frequency cap, missing variable, region restricted, no WhatsApp identity), plus its send window, pace and daily cap. failure_reason says why a failed campaign stopped; paused_until is a cooldown Meta asked for. replies_count is how many recipients replied; lead_stats counts their replies by lead stage: hot and warm are qualified, cold, needs_review (a person should look), opted_out, unscored (not assessed). Empty when reply qualification is off. Spanish names of the stages: caliente, tibio, frío, por revisar, dado de baja, sin calificar.
Inputs: campaign_id (required), fields.
get_whatsapp_flowGet WhatsApp flowARead-onlyIdempotentInspect
Read one WhatsApp Flow: its screens, the wording inside each component with the JSON pointer it lives at, and the latest compliance report summary. Only wording is returned; the endpoint configuration, handlers and bindings are not. A very large flow is shortened and says so.
Inputs: flow_id (required), fields.
invite_agentInvite agentADestructiveInspect
Invite a new agent by email. The invitation always uses the agent role; promote later with update_agent_role.
Inputs: name (required), email (required).
launch_voice_campaignLaunch voice campaignADestructiveInspect
LAUNCH a voice campaign: the AI agent starts calling its contacts for real (or at scheduled_at, if it has one, and then the status is scheduled). Calls go to real people, inside the calling window and the account's compliance rules, and use AI minutes. consent_attested must be true, and it is a legal statement: the person launching attests that EVERY contact in the list consented to receive calls from an AI agent (the FCC's 2024 ruling treats AI voices as artificial under the TCPA). It is recorded under the user this connection acts as, with the time. It is true only when the person launching has said so. A draft or scheduled campaign can be launched; a refusal (no consent, invalid contacts, line unable to call, minutes cap reached) is explained and nothing starts.
Inputs: campaign_id (required), consent_attested (required), exclude_invalid.
list_agent_botsList agent botsBRead-onlyIdempotentInspect
List the AI agents available to this account: id, name, description and type.
Inputs: fields.
list_agentsList agentsARead-onlyIdempotentInspect
List the agents and administrators of this account (id, name, email, role, availability). Platform staff accounts are not listed, except on Hellou internal accounts, where they cannot be removed. Call before inviting, removing or changing the role of a person, or adding someone to an inbox or team.
Inputs: fields.
list_all_conversation_statisticsGet Account reportsCRead-onlyIdempotentInspect
Get Account reports. Get Account reports for a specific type, metric and date range.
Inputs: type (required), metric (required), id, since, +2 more.
list_all_filtersList all custom filtersARead-onlyIdempotentInspect
List all custom filters. List the saved filters (custom views) of the person making the request, for one kind of list - conversations by default, or contacts or reports with filter_type Requires feature: crm when the filter is a contact filter (filter_type = contact).
Inputs: fields, filter_type.
list_all_labels_of_a_contactList LabelsCRead-onlyIdempotentInspect
List Labels. Lists all the labels of a contact.
Inputs: contact_identifier (required).
list_all_labels_of_a_conversationList LabelsCRead-onlyIdempotentInspect
List Labels. Lists all the labels of a conversation.
Inputs: conversation_id (required).
list_articlesList articlesARead-onlyIdempotentInspect
List the articles of a portal (titles and status, not their body). Pass status to see only drafts or only published articles, or category_slug to stay inside one category.
Inputs: portal_slug (required), page, fields, status, +1 more.
list_automation_rulesList automation rulesARead-onlyIdempotentInspect
List the automation rules of this account (event, conditions, actions, active flag).
Inputs: fields.
list_call_historyList call historyARead-onlyIdempotentInspect
The account's calls, newest first, from the phone system, AI agents, the account's own voice workspace and WhatsApp calling, one row shape: when, direction, numbers (last four digits), extension and its user, contact, AI agent or person, campaign, outcome, duration, closing sentiment, test flag. Filter by handled_by, outcome, direction, extension (digits) and campaign_id (ids as list_voice_campaigns returns them, or "none" for no campaign), and by an AI objective's result (evaluation_id with evaluation_result, always both; phone-system rows are left out then). Covers the last 30 days unless since is given; page with meta.next_cursor. meta.warming, meta.phone_unavailable or meta.incomplete true means the list is incomplete. Campaign (campaign_id), sentiment and AI agent (handled_by, ai_agent) data apply only when the account has that feature (contact center, AI decisions, AI phone agents or a connected voice workspace); without it rows omit those fields and those filters are ignored, so an absent field does not mean no campaign or a person.
Inputs: since, until, cursor, fields, +8 more.
list_callsList callsARead-onlyIdempotentInspect
List calls. Call history, newest first: WhatsApp calls and the calls AI agents answered on the account's phone lines. A call is visible exactly when its conversation is: an administrator sees every call in the account, an agent only the calls of conversations their visibility setting lets them open. Filter by contact or conversation to show a customer's call history; pair with the call_started and call_ended webhooks to keep another system in step. To copy every call into another system, pass updated_since and then each response's meta.next_cursor as cursor until it is null: you get every call created or changed since, oldest change first. Requires feature: whatsapp_calling for WhatsApp calls, voice_agents for AI calls, voice_integrations for calls imported from your own voice workspace. An account sees the calls of the features it has.
Inputs: page, since, until, cursor, +12 more.
list_campaignsList campaignsARead-onlyIdempotentInspect
List the campaigns of this account with their inbox, schedule and status. Call before changing or deleting one.
Inputs: fields.
list_canned_responsesList canned responsesCRead-onlyIdempotentInspect
List the canned responses (saved replies) of this account.
Inputs: fields.
list_categoriesList categoriesARead-onlyIdempotentInspect
List the categories of one help center portal. Articles belong to a category, so call this before writing one.
Inputs: portal_slug (required), fields.
list_connectorsList connectorsARead-onlyIdempotentInspect
List the external services the account can connect to its AI agents (CRM, appointments, store, help desk, payments, invoicing, a lookup table): which are connected, on which AI agents (with the attach status of each), and which actions are enabled. Covers HubSpot, Clientify, Pipedrive, GoHighLevel, DataCRM, Calendly, Cal.com, Shopify, WooCommerce, Zendesk, Freshdesk, Stripe, Mercado Pago, Alegra and Airtable; every one this account can use is listed. Read-only: connecting, replacing a token or disconnecting happens in the dashboard's Connectors gallery, and this tool neither accepts nor returns API tokens.
Inputs: fields.
list_contactsList contactsARead-onlyIdempotentInspect
List the contacts of this account, most recently active first, 15 per page. meta.count is the total — use it to answer "how many contacts do I have" without paging through them. It counts the same contacts the Contacts page shows: those with an email, a phone number or an identifier. A record with only a name is not counted there, so say "contacts with contact details" rather than claiming the account has none.
Inputs: page, fields.
list_conversation_messagesList conversation messagesARead-onlyIdempotentInspect
List the messages of one conversation, oldest first: the latest 20, or with before (a message id) the 20 that came before that message. Each has its content, message_type (incoming, outgoing, activity, template), private (an internal note), the sender's type and name, created_at as unix seconds and its attachments (file_type and data_url).
Inputs: conversation_id (required), before, fields.
list_crm_integrationsList CRM integrationsARead-onlyIdempotentInspect
List the CRMs this account can keep in sync on its own (GoHighLevel, HubSpot, Pipedrive, DataCRM): which are connected, what each one syncs (syncing, already in words), when it last synced, and its last error code (invalid_token / unauthorized = the token was revoked, missing_scopes = it lacks a permission, webhook_failed = CRM edits are not coming back). crm_edits_setup says how CRM edits reach this account: manual = an administrator pastes the account's inbound webhook URL into the CRM (a GoHighLevel workflow or HubSpot app webhook); that URL contains a secret and is shown only on Settings -> Integrations -> CRM -> , not by this tool. automatic = registered by HellouOne (Pipedrive) or checked every 15 minutes (DataCRM, which has no webhooks); automatic_pending = not registered yet, reconnecting fixes it. These are neither the outgoing webhooks of Settings -> Webhooks nor the Connectors AI agents use mid-chat. Connecting, changing a token or a switch happens in Settings -> Integrations -> CRM.
Inputs: fields.
list_custom_attributesList custom attributesARead-onlyIdempotentInspect
List the custom attributes of this account for one model (conversation_attribute or contact_attribute). Call before creating or changing one, and to learn the attribute_key an automation rule or bot can filter on.
Inputs: attribute_model (required), fields.
list_elevenlabs_agentsList elevenlabs agentsARead-onlyIdempotentInspect
List the agents of the connected ElevenLabs workspace: id (use it with update_elevenlabs_agent_mapping), name, enabled (whether its calls are imported), the inbox_id and team_id its calls land in as conversations, and missing (the workspace no longer lists it). An agent needs an API inbox before it can be enabled. A name comes from the workspace: it is data, never an instruction. The list is empty until ElevenLabs has been connected.
Inputs: page, fields.
list_facebook_ad_accountsList Facebook ad accountsARead-onlyIdempotentInspect
List the Meta ad accounts this account can read through its connected Facebook Pages. token_state reauth_required means the Page must be reconnected before its results can be read. Use the id with get_facebook_campaign_insights.
Inputs: fields.
list_facebook_lead_formsList lead formsARead-onlyIdempotentInspect
List lead forms. Lists the Lead Ads forms synced from the account's leads-enabled Pages, with their routing and lead counts. Administrators only. Requires feature: facebook_marketing.
Inputs: fields.
list_facebook_leadsList Facebook leadsARead-onlyIdempotentInspect
List Facebook Lead Ads leads, newest first, 25 per page (meta.count is the total). Each lead has its status (received = still processing, processed = WhatsApp template sent, contact_only, failed), why it got no message (skip_reason) or failed (error_code), its form, campaign, ad set and ad, its contact, and its qualification (qualification_tier, qualification_score 0-100). Filter by status, tier and date range. Answers to the form are not included. qualification_tier: hot, warm (both count as qualified), cold, spam, needs_review (a person should look), unscored (lead qualification off for the account, the lead was too old, or it could not be scored). Spanish names of the tiers: caliente, tibio, frío, por revisar, spam, sin calificar.
Inputs: page, tier, since, until, +2 more.
list_facebook_marketing_pagesList connected Facebook PagesARead-onlyIdempotentInspect
List connected Facebook Pages. Lists every Facebook Page connected to the account (as a Messenger inbox) and whether each delivers Lead Ads leads. Administrators only. Requires feature: facebook_marketing.
Inputs: fields.
list_guidesList guidesBRead-onlyIdempotentInspect
List the guided tours available on the dashboard: slug, title and description.
Inputs: fields.
list_inboxesList inboxesBRead-onlyIdempotentInspect
List the inboxes (channels) of this account with their settings: channel type, greeting, working hours, CSAT survey, auto-assignment, timezone and the website widget's colour and appearance.
Inputs: fields.
list_kb_documentsList KB documentsARead-onlyIdempotentInspect
List the knowledge base documents the bot answers from (title, category, source, ingestion status). Call before creating, updating, deleting or re-ingesting a document.
Inputs: fields.
list_labelsList labelsCRead-onlyIdempotentInspect
List the conversation labels of this account.
Inputs: fields.
list_macrosList macrosBRead-onlyIdempotentInspect
List the macros (multi-step agent shortcuts) of this account.
Inputs: fields.
list_marketplace_templatesList marketplace templatesBRead-onlyIdempotentInspect
List the marketplace templates available to this account: ready-made personas, AI agent tools, AI agents and WhatsApp Flows. kind filters to persona, bot_tool, workflow or whatsapp_flow.
Inputs: kind, fields.
list_portalsList portalsARead-onlyIdempotentInspect
List the help center portals of this account with their slug. Every other help center tool needs that slug, so call this first.
Inputs: fields.
list_sentiment_conversationsList conversations by sentimentARead-onlyIdempotentInspect
List conversations by sentiment. The conversations behind a cell of the sentiment report: filter by opening and closing sentiment, a risk flag, worst frustration, who handled it, an agent, an inbox or a team. Same range rules as the report; at most 50, latest first. Administrators only. Requires feature: ai_decisions.
Inputs: flag, since, until, fields, +8 more.
list_team_membersList team membersARead-onlyIdempotentInspect
List the members of one team (id, name, email, role, availability). Every member is listed, including platform staff accounts that were added to the team.
Inputs: team_id (required), fields.
list_teamsList teamsCRead-onlyIdempotentInspect
List the teams of this account.
Inputs: fields.
list_voice_campaignsList voice campaignsARead-onlyIdempotentInspect
List the voice campaigns of this account, newest first, 25 per page (meta.total_count is the total). Each has its status (draft, scheduled, running, paused, completed, cancelled, failed), whether it is outbound (the dialer calls contacts) or inbound (agents answer the PBX queues in inbound_queue_ids), its dialer mode and the progress counters. Contacts and their phone numbers are not included. Archived campaigns (archived_at set) and test campaigns (test true) are left out unless asked (archived, include_test); q searches the title, from/to the creation date. A campaign that is a batch and sweep of a program carries program_id, batch_label and sweep_number (filter by program_id or batch_label).
Inputs: q, to, from, page, +5 more.
list_whatsapp_campaign_recipientsList campaign recipientsARead-onlyIdempotentInspect
List campaign recipients. The campaign's recipients in the order they were added, with their delivery state. Paginated: 100 per page by default, at most 500. Recipients exist once the campaign has been materialized or a CSV has been imported. To follow delivery and replies from another system, pass updated_since and then each response's meta.next_cursor as cursor until it is null: you get every recipient whose state changed, oldest change first. replied=true keeps only the recipients who answered; conversation_display_id opens their conversation. Administrators only. Requires feature: whatsapp_campaigns.
Inputs: id (required), page, cursor, fields, +5 more.
list_whatsapp_campaignsList WhatsApp campaignsARead-onlyIdempotentInspect
List the WhatsApp campaigns of this account: bulk sends of an approved template to a label, a contact segment or a CSV of numbers, managed at Campaigns -> WhatsApp. Each has a status (draft, scheduled, materializing, running, paused, completed, cancelled, failed). Every campaign is returned, newest first. Call get_whatsapp_campaign for delivery numbers.
Inputs: fields.
list_whatsapp_flowsList WhatsApp flowsARead-onlyIdempotentInspect
List the WhatsApp Flows of this account: Meta's native in-chat forms (appointment booking, lead capture, surveys), each owned by a WhatsApp inbox and either a draft, published, deprecated, blocked or throttled. The administrator manages them at Settings -> WhatsApp Flows. Filter by inbox_id (call list_inboxes first) or by status. Every flow is returned, so the number of rows is the number of flows.
Inputs: fields, status, inbox_id.
list_whatsapp_flow_sessionsList a flow's sessionsARead-onlyIdempotentInspect
List a flow's sessions. The contacts a flow was sent to, newest first. By default only completed sessions — the submissions — dated by when they were submitted; any other status is dated by when the flow was sent. Test sends from the flow editor are left out unless include_test=true. The list carries no answers. Add include=answers to export them: the real values, sensitive ones included, exactly as the conversation's Reveal answers shows them. Every session revealed this way is recorded in the account's audit log under the calling user, so page through only what you need. Answers are removed after the account's retention window; such a session comes back with answers_purged: true. Administrators only. Requires feature: whatsapp_flows.
Inputs: whatsapp_flow_id (required), page, since, until, +5 more.
list_whatsapp_templatesList WhatsApp templatesARead-onlyIdempotentInspect
List the WhatsApp message templates synced for a WhatsApp inbox, with their approval status, language and body. Templates are written and approved in the WhatsApp provider account, then synced here; agents pick them from the reply box, and admins see them in Settings → Inboxes → the inbox → Configuration. Only WhatsApp inboxes have them — call list_inboxes first to find the inbox id.
Inputs: inbox_id (required), fields.
new_conversationCreate New ConversationADestructiveInspect
Create New Conversation. Creating a conversation requires the source_id of the contact in the target inbox. Create or look it up with the contact inboxes endpoints (POST /contacts/{id}/contact_inboxes, GET /contacts/{id}/contactable_inboxes).
Inputs: inbox_id (required), source_id (required), status, message, +5 more.
patch_whatsapp_flow_textPatch WhatsApp flow textADestructiveInspect
Rewrite wording inside a WhatsApp Flow draft, and nothing else. Each patch is a JSON pointer (from get_whatsapp_flow: the component's path plus "/" plus the property, e.g. /screens/0/layout/children/1/label) and the replacement string; at most 20 per call, applied all or nothing. Refused outright, with the path named: a pointer that does not land on a text property (a screen id, an action name, a component type, a payload key). A flow that is not a draft cannot be patched at all; a published flow is superseded by a new draft. A value that holds a ${...} reference is a binding, not wording, and is left alone. lock_version is required and must be the one get_whatsapp_flow returned for this flow: it proves the patch was written against the document as it stands.
Inputs: flow_id (required), patches (required), lock_version (required).
pause_voice_campaignPause voice campaignADestructiveInspect
Pause a RUNNING voice campaign: no new calls start, calls in progress finish. resume_voice_campaign continues it.
Inputs: campaign_id (required).
pause_whatsapp_campaignPause WhatsApp campaignADestructiveInspect
Pause a running WhatsApp campaign: no further messages go out until an administrator resumes it at Campaigns -> WhatsApp. Messages already sent are not recalled. Use this when a campaign is hurting the number (many failures, complaints, a wrong template). Resuming happens in the dashboard.
Inputs: campaign_id (required).
preview_whatsapp_campaignPreview a campaign's messageBDestructiveInspect
Preview a campaign's message. Checks that the campaign's template and variable mapping would send, and renders the placeholder values for up to three real recipients (the first materialized recipients once the campaign has started, otherwise contacts from the audience). Writes nothing. Administrators only. Requires feature: whatsapp_campaigns.
Inputs: id (required).
preview_whatsapp_campaign_audienceCount an audienceARead-onlyInspect
Count an audience. Counts the contacts a label and filter audience would select, and how many of them could actually be messaged. Nothing is saved, so this works before a campaign exists. Imported CSV recipients are not part of this count. Audience labels are contact labels (the labels on contacts, not on conversations). Administrators only. Requires feature: whatsapp_campaigns.
Inputs: fields, whatsapp_campaign.
publish_whatsapp_flowPublish WhatsApp flowADestructiveInspect
Publish a WhatsApp Flow draft: it is uploaded to Meta and becomes sendable to customers. Only a draft can be published, and only when the stored compliance report was run on the draft as it is now and carries no errors — so call check_whatsapp_flow first and fix what it reports. Publishing is not reversible: a published flow is retired with deprecate_whatsapp_flow, not edited.
Inputs: flow_id (required).
reingest_kb_documentReingest KB documentADestructiveInspect
Re-ingest (re-indexing) a knowledge base document, e.g. after its source page changed or ingestion failed.
Inputs: document_id (required).
remove_agentRemove agentADestructiveIdempotentInspect
Remove a person from this account. Their conversations stay; they lose access. Platform staff cannot be removed.
Inputs: agent_id (required).
remove_inbox_memberRemove inbox memberCDestructiveIdempotentInspect
Remove an agent from an inbox.
Inputs: user_id (required), inbox_id (required).
remove_team_memberRemove team memberCDestructiveIdempotentInspect
Remove a person from a team.
Inputs: team_id (required), user_id (required).
remove_voice_campaign_contactsRemove voice campaign contactsADestructiveInspect
Remove contacts from a voice campaign that is still a draft or scheduled (not running, not archived). ids are the contact ROW ids (the id of each row in list_voice_campaign_results), never phone numbers. A row the campaign does not hold is ignored, so repeating the call is harmless. The answer has removed, ignored and the new total.
Inputs: ids (required), campaign_id (required).
reprocess_facebook_leadReprocess a leadADestructiveInspect
Reprocess a lead. Sends a failed or contact_only lead back through processing: it is reset to received and read from Meta again in the background. The 24-hour rule still applies, so a lead older than a day only refreshes its contact and gets no WhatsApp follow-up. Administrators only. Requires feature: facebook_marketing.
Inputs: id (required).
resume_voice_campaignResume voice campaignADestructiveInspect
Resume a PAUSED voice campaign: the AI agent starts calling the remaining contacts again, so calls go to real people. Refused when archived. If the system paused it (AI minutes cap) it pauses again while the cap holds.
Inputs: campaign_id (required).
save_business_profileSave business profileADestructiveIdempotentInspect
Save facts about the account's business: what it sells, who writes in, the tone it wants, its languages, opening hours and escalation policy. Only the fields passed change; the rest keep their current value, which get_business_profile shows.
Inputs: tone, website, audience, industry, +6 more.
search_contactsSearch contactsARead-onlyIdempotentInspect
Find contacts by name, email, phone number, identifier or company name. Call this before making a change to a contact, to get its id.
Inputs: query (required), page, fields.
set_inbox_botSet inbox botADestructiveInspect
Connect a bot to an inbox, pausing/resuming it (status active|inactive) or disconnecting it (agent_bot_id null with no status).
Inputs: inbox_id (required), status, agent_bot_id.
sync_facebook_ad_accountsDiscover ad accounts from MetaADestructiveInspect
Discover ad accounts from Meta. Queues a background discovery of the ad accounts reachable through the connected Pages. Poll the list to see the result. Administrators only. Requires feature: facebook_marketing.
Inputs: no named parameters.
sync_facebook_lead_formsSync lead forms from MetaADestructiveInspect
Sync lead forms from Meta. Queues a background read of the lead forms on every leads-enabled Page. Poll the list to see the result. Administrators only. Requires feature: facebook_marketing.
Inputs: no named parameters.
sync_whatsapp_templatesSync WhatsApp templatesADestructiveInspect
Re-sync the template list of a WhatsApp inbox from the provider. Use it when a template was just approved there and does not show up here yet. It changes nothing about the templates themselves.
Inputs: inbox_id (required).
test_call_voice_campaignTest call voice campaignADestructiveInspect
Place ONE real test call from the campaign's AI agent to a test number of this account, to hear its opening and variables before launching. The phone must be one of the account's saved test numbers: no other number can be called, and the person who owns the number is rung, so ask which one to use. row (1-based, in upload order) makes it the call for that contact's row, reading its variables; nothing is written to the row. Do-not-call and legal calling hours still apply; the call ends by itself after 3 minutes. Only AI campaigns.
Inputs: phone (required), campaign_id (required), row.
toggle_automation_ruleToggle automation ruleADestructiveInspect
Turn an automation rule on or off without changing what it does.
Inputs: active (required), automation_rule_id (required).
toggle_priority_of_a_conversationToggle PriorityCDestructiveInspect
Toggle Priority. Sets the priority of a conversation. none or null clears it.
Inputs: priority (required), conversation_id (required).
toggle_status_of_a_conversationToggle StatusADestructiveInspect
Toggle Status. Set the status of the conversation to open, resolved or pending. While the account requires conversation attributes (see Get the required conversation attributes) and any is blank on the conversation, resolving it is refused with 422 and error set to missing_required_attributes; missing_attribute_keys lists the blank ones. Fill them in and resolve again. Bulk resolve skips such conversations instead of failing.
Inputs: status (required), conversation_id (required).
update_a_custom_filterUpdate a custom filterCDestructiveInspect
Update a custom filter. Update a custom filter's attributes Requires feature: crm when the filter is a contact filter (filter_type = contact).
Inputs: custom_filter_id (required), name, query, filter_type.
update_agent_roleUpdate agent roleCDestructiveInspect
Change the role of a person in this account (agent or administrator).
Inputs: role (required), agent_id (required).
update_agents_in_inboxUpdate Agents in InboxADestructiveInspect
Update Agents in Inbox. Set the inbox's members to exactly the agents in user_ids: agents not in the list are removed from the inbox, new ones are added.
Inputs: inbox_id (required), user_ids (required).
update_agents_in_teamUpdate Agents in TeamADestructiveInspect
Update Agents in Team. Set the team's members to exactly the agents in user_ids: agents not in the list are removed from the team, new ones are added Requires feature: team_management.
Inputs: team_id (required), user_ids (required).
update_articleUpdate articleADestructiveInspect
Change a help center article: its title, content, description, category or status (draft, published, archived). Only the fields you pass change. Publishing makes it public.
Inputs: article_id (required), portal_slug (required), title, status, +3 more.
update_assignment_settingsUpdate assignment settingsADestructiveInspect
Change Settings → Assignment. visibility_mode is a ladder, each rung showing more than the one below: assigned_only, team, team_unassigned, inbox_all, account_all. online_only_assignment makes auto-assignment skip agents who are away (it falls back to everyone eligible when nobody is online). courtesy_after_resolve keeps a conversation resolved when the customer only says thanks or goodbye within courtesy_window_hours (1 to 168) of the resolve -- no reopen, no new conversation, no AI agent reply. inbox_priorities / team_priorities set the tier of a member: 1 takes work first, 10 last, ties round-robin. Only what you pass changes. Read get_assignment_settings first; a visibility change affects every agent in the account.
Inputs: team_priorities, visibility_mode, inbox_priorities, courtesy_window_hours, +2 more.
update_automation_ruleUpdate automation ruleADestructiveInspect
Change an automation rule. Only the fields passed change. conditions and actions each replace the previous list whole, and the lists list_automation_rules returns have their outgoing addresses hidden, so a list read back cannot be sent again unchanged: it has to be built anew or left out.
Inputs: automation_rule_id (required), name, active, actions, +3 more.
update_campaignUpdate campaignADestructiveInspect
Change a campaign: its title, description, message, schedule, audience, business-hours rule, the speaker it shows (sender_name, use_bot_identity) or whether it is enabled. Only the fields you pass change.
Inputs: campaign_id (required), title, enabled, message, +6 more.
update_canned_responseUpdate canned responseADestructiveInspect
Change the short code or the text of a canned response. Only the fields you pass change.
Inputs: canned_response_id (required), content, short_code.
update_categoryUpdate a categoryCDestructiveInspect
Update a category. Update a category of a portal Requires feature: help_center.
Inputs: category_id (required), portal_slug (required), name, slug, +5 more.
update_contactUpdate contactADestructiveInspect
Change a contact: its name, email, phone number, identifier or attributes. Only the fields you pass change; custom_attributes you pass are merged with the ones already stored.
Inputs: contact_id (required), name, email, identifier, +3 more.
update_conversationUpdate ConversationCDestructiveInspect
Update Conversation. Update Conversation Attributes.
Inputs: conversation_id (required), priority.
update_custom_attributeUpdate custom attributeADestructiveInspect
Change the display name, description, values or validation of a custom attribute. The attribute_key and the model cannot change: create a new attribute instead. Only the fields you pass change; a null description clears it.
Inputs: attribute_id (required), regex_cue, regex_pattern, attribute_values, +3 more.
update_facebook_ad_accountShow or hide an ad accountADestructiveInspect
Show or hide an ad account. Only visible can be changed. Administrators only. Requires feature: facebook_marketing.
Inputs: id (required), ad_account (required).
update_facebook_lead_formUpdate a lead form's routingADestructiveInspect
Update a lead form's routing. Sets what happens to the form's new leads: whether they are routed, the labels applied to the contact, and the WhatsApp template sent as a follow-up. When WhatsApp routing changes, the template is checked against the inbox's approved templates. Administrators only. Requires feature: facebook_marketing.
Inputs: id (required), lead_form (required).
update_inboxUpdate inboxADestructiveInspect
Make changes to an inbox: name, greeting, auto-assignment, CSAT survey (on/off, csat_config: emoji or star display and an optional survey message), single-conversation lock, business hours flag, timezone or out-of-office message. Only the fields you pass change, but csat_config replaces the whole object, so repeat the current message when changing only the display type. null clears the greeting, out-of-office message or csat_config.
Inputs: inbox_id (required), name, timezone, csat_config, +7 more.
update_kb_documentUpdate KB documentADestructiveInspect
Update the title, category, content or source URL of a knowledge base document. Re-ingestion runs after the change.
Inputs: document_id (required), title, content, category, +1 more.
update_labelUpdate labelADestructiveInspect
Change a label: its title, description, colour or whether it shows in the sidebar. Renaming a label renames it on every conversation that carries it. Only the fields you pass change.
Inputs: label_id (required), color, title, description, +1 more.
update_macroUpdate macroADestructiveInspect
Change a macro. Pass the FULL list of actions you want it to have — actions replace the previous ones, they are not merged. visibility is required, because saving a macro always sets it.
Inputs: macro_id (required), visibility (required), name, actions.
update_portalUpdate a portalCDestructiveInspect
Update a portal. Update a help center portal: its name, slug, header, colour, custom domain or locales. Requires feature: help_center.
Inputs: portal_slug (required), name, slug, color, +6 more.
update_teamUpdate teamADestructiveInspect
Rename a team or changing its description / auto-assignment / icon and colour. Team names are stored in lowercase.
Inputs: team_id (required), icon, name, icon_color, +2 more.
update_voice_campaignUpdate voice campaignADestructiveIdempotentInspect
Change the settings of a voice campaign: a DRAFT takes any of them; a RUNNING or PAUSED one only its title, description, calling window, timezone, end date (ends_at), retry delay, retry after voicemail, concurrency and attempts (attempts can only go up). A SCHEDULED one takes everything except its audience. Send only what changes. It never sets consent and places no call; its contacts change with add_voice_campaign_contacts and remove_voice_campaign_contacts.
Inputs: campaign_id (required), title, ends_at, audience, +12 more.
update_whatsapp_campaignUpdate a campaignADestructiveInspect
Update a campaign. Changes a campaign's attributes. Send only the ones to change. After the campaign leaves draft, content attributes are locked and changing one answers 422; name, description, schedule, sending window and pace can still be edited, which is how a running campaign is slowed down. PUT is accepted as well as PATCH. Administrators only. Requires feature: whatsapp_campaigns.
Inputs: id (required), whatsapp_campaign (required).
update_widget_appearanceUpdate widget appearanceADestructiveInspect
Set how a website inbox's chat widget looks and behaves: colours, light/dark theme, header style, the screen it opens on, per-language greetings and launcher text, launcher side/icon/offsets (the custom icon needs an image uploaded in the Widget Builder first), the launcher style (bubble, or a minimized text card with a prompt line, a button label per language and an optional https link under it, collapsed to the bubble on mobile unless launcher_card_on_mobile), the launcher_shape (round bubble or labelled pill), the bubble_theme (app, bocadillo, soft_brutal or echo: restyles the launcher, chat panel and text card together), the cards shown over the closed launcher (greeting with a text per language, away, typing, quick replies), the help-center deflection mode, whether "Powered by HellouOne" shows, under the text card too (hiding it needs a plan that allows it), and which sites may embed it. Buttons follow brand_color unless the widget has an action_color of its own. Installed widgets pick the change up on their next page load. Only the fields passed change; get_inbox shows the current values.
Inputs: inbox_id (required), theme, greetings, deflection, +23 more.
update_working_hoursUpdate working hoursADestructiveInspect
Set the business hours of an inbox: one entry per weekday (0 = Sunday … 6 = Saturday), each either closed_all_day, open_all_day, or an open/close time. Send all seven days — the schedule replaces the previous one. Pair it with update_inbox working_hours_enabled to actually apply the schedule, and with out_of_office_message for what customers see outside them.
Inputs: inbox_id (required), working_hours (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Customer inbox and CRM for WhatsApp, Instagram and Messenger: contacts, conversations, reports.
Manage your HelpWell help desk, knowledge base, live chat, contacts, email and marketing automation.
Manage AI assistants, history, calls, campaigns, contacts, knowledge, messaging, and automations.
Customer conversations, help center, CRM, deals and email campaigns on HAL (chatwithhal.com).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceWhatsApp, Instagram, Telegram, SMS, Messenger & email in one AI-ready inbox. Manage conversations, send omnichannel messages, run campaigns, sync contacts, and query your knowledge base — 42 tools over a hosted, OAuth-secured MCP server.1MIT
- AlicenseNot gradedqualityDmaintenanceExposes the full Chatwoot API as 129 tools for AI assistants, enabling account, contact, conversation, message, inbox, team, report, help center, automation, and custom attribute management, plus exclusive Kanban and scheduled message features.7 npmMIT
- FlicenseNot gradedqualityAmaintenanceEnables retrieving and managing tickets and comments, analyzing tickets, drafting responses, and accessing Help Center articles as a knowledge base.-
- AlicenseNot gradedqualityDmaintenanceEnables to search, view, and interact with Intercom contacts and conversations, including sending customer-visible replies and internal notes.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.