Documentation
Human, agent or bot
More and more forms are filled in by AI agents acting for a person: booking a table, asking for a quote, applying for a job. WebForms tags every submission with who sent it, so you can treat each kind the way you want. Nothing to set up, on every plan.
Last updated
Where you see it
The inbox shows a tag on every submission not sent by a person, and the AI agents tab lists only those. The tag is in webhook payloads, the Submissions API (sender and agent, filter with ?sender=verified_agent) and the MCP tools.
{
"event": "submission.created",
"submission": {
"id": "sub_...",
"data": { "name": "Ada", "email": "ada@example.com" },
"sender": "verified_agent",
"agent": "chatgpt.com"
}
}Routing on it
In a routing rule, use the field _meta.sender (the dashboard suggests it and its values) or _meta.agent. Send agent bookings to a separate channel, or skip your CRM for anything that is not a person.
{
"name": "AI agents to the bookings channel",
"conditions": [{ "field": "_meta.sender", "op": "in", "value": ["browser_agent", "verified_agent"] }],
"integrationIds": ["int_slack"]
}How verification works
An agent that supports Web Bot Auth signs each request with a key it publishes at its own domain, and says which domain in the Signature-Agent header. WebForms fetches that domain's public keys, checks the signature (HTTP Message Signatures, RFC 9421, Ed25519) and that it was made for this request and is current. A missing or failed signature never blocks a submission; it is simply not verified.
Get your endpoint
Free for 300 submissions a month. No card required.
Start free