Forms

Basin Webhook MCP Server

Connect your account, then chat with AI to run tools.

Wire Basin form webhooks to MCPBundles and inspect submissions in chat.

Best forMarketingDesignersNo-Code Builders

Try this workflow

Last form submit

Read the latest Basin submission from export.json — unwrap data if nested and list email, name, id, and any attachment URLs.

Managed
4 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

What you can do with Basin Webhook

Built for

Marketing Teams, Designers, No-Code Builders

Example workflows

Last form submit

Interprets variable Basin payload shapes from stored JSON.

Try this

Read the latest Basin submission from export.json — unwrap data if nested and list email, name, id, and any attachment URLs.

Submission volume

Uses payload ids for dedupe analysis.

Try this

List recent submissions and count unique id values, noting any duplicate id with different captured_at timestamps.

Context to know first

How do I connect Basin deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Basin where webhook integrations are enabled on the project. Your agent reads stored deliveries — latest, history, and content — in chat.

Can an agent trigger a new delivery?

No. Ingest is read-only. Data arrives when the upstream system sends it; agents query what already landed.

AI Skill
SKILL.md

Domain knowledge for Basin Webhook — workflow patterns, data models, and gotchas for your AI agent.

Basin Webhook

Basin POSTs a webhook when a form receives a submission. Each POST is one stored report. The JSON shape depends on the payload format chosen upstream — flat JSON, data-wrapped JSON, urlencoded-as-string, vendor presets (Customer.io, MailerLite, Pardot), or a custom Handlebars template. Field names mirror the form schema plus Basin metadata; there is no fixed column layout across connections. Tools read what already landed — there is no pull API and no way to re-fire or mutate submissions from here.

First moves

  1. Latest report — default for “what was submitted last” or lead triage.
  2. Recent reports — scan history for volume, duplicates, or a named submitter.
  3. One report by id — after listing, when the user points at a specific delivery.
  4. Inspect export.json — read the parsed body; fall back to export.text when the payload is large or non-object.

Typical payload shapes

Flat JSON — form fields at the top level alongside Basin ids:

  • email, name — common when those fields exist on the form.
  • id — Basin submission id; use for deduping against re-fired webhooks.
  • attachments — array of uploads with public_url and attachment_proxy_url; custom templates may also expose name and file_size.

Data-wrapped JSON — the same fields nested under a top-level data object. Unwrap data before reading field values.

Urlencoded / Pardot-style — body may arrive as a data string of key=value&… pairs rather than nested JSON keys.

Custom templates — upstream may add merge-tag fields such as form-name, dynamic keys from form_params, source tracking (source_host, source_path, source_query, source_fragment), and optional lead_agent scoring (score, score_reasoning, score_location_info). Treat every custom key as form-specific.

Response shape

  • export.json — parsed object when the body was JSON.
  • export.text — raw body for urlencoded strings, custom content types, or oversized payloads.
  • source.captured_at — when the webhook landed here (not necessarily the upstream submission timestamp — check id or any timestamp fields inside the JSON).

Operational order

  1. Start with the latest report — do not guess a report id.
  2. If captured_at is older than expected, say so — Basin sends when submissions arrive, and upstream may retry failed deliveries.
  3. List recent reports only for history, duplicate suspicion, or explicit compare-by-date asks.
  4. Read ## This connection in the skill supplement for form-specific field names or payload-format notes.

Gotchas

  • Read-only — cannot submit forms, acknowledge Basin, or trigger re-fires from here.
  • Payload format varies — the same form may use flat JSON, a data wrapper, or a custom template; inspect the latest delivery instead of assuming keys.
  • Spam filtering — upstream may skip webhooks for spam-flagged submissions unless the form owner enabled webhooks for all submissions; an empty stretch may mean filtering upstream, not ingest failure.
  • Re-fires and retries — Basin retries failed webhooks and supports manual re-fires; the same id can appear more than once — compare source.captured_at when deduping.
  • Attachments — file metadata lives in attachments; binary bytes are not inlined — cite URLs from the JSON when the user asks about uploads.
  • Empty — no stored reports means nothing has arrived yet; say no submission is available.

Tools in this Server (4)

Basin Wh Latest

Return the most recently stored report — tabular rows, raw text, or JSON depending on format. Default starting point for current report questions.

Basin Wh List

List recent stored reports — ids, capture time, filename, and format. Follow with latest report or get report for full content.

Basin Wh Report

Return one stored report by report_id — full content with the same source/export envelope as latest report.

Basin Wh Status

Connection status — whether any reports have landed, when the last file arrived, filename, and stored report count. Includes the ingest URL only when ...

Frequently Asked Questions

How do I connect Basin deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Basin where webhook integrations are enabled on the project. Your agent reads stored deliveries — latest, history, and content — in chat.

Can an agent trigger a new delivery?

No. Ingest is read-only. Data arrives when the upstream system sends it; agents query what already landed.

How do I connect Basin Webhook to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/basin-webhook. Authentication is handled automatically.

How many tools does Basin Webhook provide?

Basin Webhook provides 4 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Basin Webhook require?

Basin Webhook uses API Key. Basin Webhook requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect Basin Webhook to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/basin-webhook

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Basin Webhook and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Basin Webhook will appear under Not connected — select it and click Connect to complete OAuth.
Name: Basin Webhook
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/basin-webhook
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Basin Webhook?

Sign in to connect your credentials and start running tools from the chat.