Skip to main content
Glama

WhatsApp Business API by Wassenger

manage_whatsapp_web_form_submissions

Read-onlyIdempotent

Read what customers answered in web forms, newest first. Actions: list (filters: form, number, chat, contact, phone, agent, source, dates), get (one submission with every answer), export (csv or json, up to 10,000 rows; when the result is too large to show, it answers the count so you can narrow the range). Answers are personal data: show only what the user asked for. Answers marked sensitive are left out. For WhatsApp Forms (Meta WhatsApp Flows, native in-chat forms on WhatsApp Business API numbers) use send_whatsapp_flow and list_whatsapp_flows instead. (their answers: list_whatsapp_flow_responses)

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "action": "<action>"
    },
    "name": "manage_whatsapp_web_form_submissions"
  }
}

Input Schema

NameRequiredDescriptionDefault
toNoSubmitted until this day, YYYY-MM-DD (UTC)
idsNoexport: only these submissions
chatNoOnly this chat
fromNoSubmitted from this day, YYYY-MM-DD (UTC)
pageNoPage, from 0
sizeNoRows per page (default 25, max 100)
agentNoOnly links sent by this team member
formsNoMore web forms to include
phoneNoOnly this phone number
actionYesWhat to do
deviceNoOnly these numbers
fieldsNoReturn only these dot-paths, e.g. ["id", "name", "status"]. Overrides verbosity
formIdNoOnly submissions of this web form
formatNoexport: json (default) or csv
sourceNoOnly links created this way
statusNo
contactNoOnly this contact (chat ID or phone)
pipelineNoOnly submissions whose CRM write-back is pending or failed
verbosityNosummary (default): the fields needed most; standard: more context; full: everything the API returns
submissionIdNoget: the submission

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive reads, so the description's value is the extra behavior it discloses: sensitive answers are omitted from output, personal data should be surfaced only as the user asked, and oversized exports answer with a count instead of rows so the caller can narrow the range. Those are non-obvious output-shaping behaviors that an agent could not infer from the annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then actions, then the data-handling caveat, then sibling routing — a sensible priority order with little filler. The only drag is the trailing parenthetical "(their answers: list_whatsapp_flow_responses)", which is awkwardly fragmentary and partly repeats the routing already given a sentence earlier.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 20-parameter, three-action read tool with no output schema, the description covers action selection, export limits, redaction of sensitive answers, and the sibling boundary — enough to call it correctly. It leaves pagination (page/size) and the fields/verbosity projection controls entirely to the schema, which is defensible given 95% coverage but is the remaining gap for an agent shaping a response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 95%, so the per-parameter definitions already do most of the work and a baseline of 3 applies. The description still adds meaning above the schema by grouping the filters by action, tying format and row caps to export, and explaining the count-instead-of-rows fallback, which is a behavioral consequence not stated anywhere in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ("Read what customers answered in web forms") plus the ordering ("newest first"), then enumerates the three actions: list, get, export. It also explicitly separates this tool from the WhatsApp Flows siblings by naming send_whatsapp_flow, list_whatsapp_flows, and list_whatsapp_flow_responses, so an agent can distinguish the two form families without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each action carries its own conditions: list with its supported filters, get returns one submission with all answers, export is csv/json up to 10,000 rows with a fallback when the result is too large. It also names the alternative path (WhatsApp Flows tools) for in-chat Meta forms, which is an explicit when-not rule rather than an implied one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.