Basin is a no-code form backend that enables users to set up powerful, reliable forms quickly without writing server-side code.
Basin is a no-code form backend that enables users to set up powerful, reliable forms quickly without writing server-side code. On Nagent, Basin is exposed as a fully-configurable forms & surveys integration that any agent can call — 19 actions, and API key authentication. No code is required to wire Basin into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Basin to automate the kinds of tasks forms & surveys teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Basin into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Basin, with input parameters and output schema. Drop these into any step of an agent built in Helix.
BASIN_CREATE_FORMTool to create a new form in Basin. Use when you need to automate form setup with name, timezone, and project association; optionally configure redirect, notifications, or spam protection.
Input parameters
Name of the form
IANA timezone used for form timestamps
Whether the form should submit via AJAX
ID of the project under which this form is created
URL to redirect after submission
Email notification settings for a form.
Spam protection configuration for a form.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_CREATE_FORM_WEBHOOKTool to create a new webhook for a specific form. Use when you need to programmatically add a webhook once you have the form ID and callback URL confirmed.
Input parameters
Destination URL where Basin will POST the submission payload
Friendly label for this webhook (for your reference)
Payload format (e.g., 'slack'). Omit for default JSON.
Whether the webhook is active upon creation
ID of the form to attach the webhook to
If true, fire this webhook even when a submission is flagged as spam
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_CREATE_PROJECTTool to create a new Basin project. Use when you need a new organizational container for forms. Example: "Create a project named Marketing Leads."
Input parameters
Name of the new project; must be non-empty.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_DELETE_FORMTool to delete a form. Use when permanently removing a form after it's no longer needed. Ensure the form_id is correct; this operation is irreversible.
Input parameters
ID of the form to permanently delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_DELETE_PROJECTTool to delete a project. Use when you need to remove a project after confirming its ID. Returns the deleted project's details.
Input parameters
ID of the project to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_DELETE_SUBMISSIONTool to permanently delete a form submission by its ID. Use when you need to remove a submission after confirming its ID. This operation is irreversible.
Input parameters
ID of the submission to permanently delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_DELETE_WEBHOOKTool to delete a specific webhook. Use when you need to remove a webhook from a form after confirming its ID.
Input parameters
ID of the webhook to delete
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_GET_DOMAINSTool to retrieve a list of all custom domains associated with the Basin account. Custom domains allow you to send emails from your own domain through Basin forms. Supports pagination and filtering by domain name or ID.
Input parameters
Page number for pagination (starts at 0)
Filter domains by ID or name
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_GET_FORM_DETAILSRetrieves comprehensive details about a specific Basin form including configuration, notification settings, security options, branding, webhooks, and submission counts. Use this when you need complete information about a form's setup and current state. Requires a form ID (obtain from Get Forms action if needed).
Input parameters
The numeric ID of the form (as a string). Can be obtained from the 'id' field in the Get Forms action response. Example: '55229'
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_GET_FORMSRetrieves a list of all Basin forms with their configuration and metadata. Supports optional pagination via the 'page' parameter and filtering via the 'query' parameter (searches across form id, name, uuid, and project_id). Returns comprehensive form details including webhooks, submission counts, notification settings, and security configurations.
Input parameters
Page number for pagination (default: 1)
Filter forms by id, name, uuid, or project_id. Partial matches supported.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_GET_FORM_WEBHOOKTool to retrieve details of a specific form webhook by its ID. Use when you need to view webhook configuration including URL, format, and trigger settings.
Input parameters
ID of the form webhook to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_GET_PROJECT_DETAILSTool to retrieve detailed information about a specific project. Use when you have a project ID and need its metadata (name, created_at, updated_at).
Input parameters
Unique identifier of the project to retrieve
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_GET_PROJECTSRetrieves a list of Basin projects from your account. Returns project details including IDs, names, and timestamps. Use this to list all projects or filter by name/ID. The response includes pagination metadata to help navigate large result sets. Typical use: Get project IDs for use with other project-specific endpoints like forms or submissions.
Input parameters
Page number for pagination (default: 1). Use this to navigate through multiple pages of results.
Search filter to match projects by name or ID. Returns projects containing this text in their name or matching the ID.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_GET_SUBMISSIONSRetrieve form submissions from Basin with optional filtering, sorting, and search capabilities. Can retrieve all submissions across forms or filter by specific form_id. Supports filtering by status (new/spam/trash/all), text search, date range, and sorting by date or email.
Input parameters
Search submissions by text across all fields
ID of the form to get submissions from. Required if using a shared account API token.
Sort submissions by 'date_asc', 'date_desc', 'email_asc', or 'email_desc'.
Filter submissions by status. One of 'new', 'spam', 'trash', or 'all'.
Filter submissions by date range in format 'YYYY-MM-DD+to+YYYY-MM-DD'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_GET_WEBHOOKSTool to retrieve all webhooks associated with a specific form. Use after obtaining the form ID.
Input parameters
Page number for pagination, if multiple pages of webhooks exist
Optional search term to filter webhooks by name, id, url, or form_id
ID of the form to retrieve webhooks for
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_LIST_FORM_VIEWSRetrieves a list of all Basin form views with their configuration and metadata. Supports optional pagination via the 'page' parameter and filtering via the 'query' parameter (searches across form view id, uuid, form id, and form uuid).
Input parameters
Page number for pagination (default: 1)
Filter form views by id, uuid, form id, or form uuid. Partial matches supported.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_UPDATE_FORMTool to update an existing Basin form by ID. Use when you need to modify form settings including name, notifications, spam protection, redirects, or other configuration options.
Input parameters
ID of the form to update
URL to logo image for the form
Name of the form
IANA timezone for the form
Whether the form should submit via AJAX
Whether to send auto-reply emails to submitters
ID of custom domain to use for the form
ID of the project this form belongs to
Custom domain email address
URL to redirect after form submission
Body text for auto-reply emails
Name to show as sender in auto-reply emails
Whether to require hCaptcha verification
Name of honeypot field to trap spam bots
Number of days to retain form submissions
List of domains allowed to submit the form
Email address to send auto-replies from
Title for auto-reply emails
List of domains blocked from submitting the form
Custom HTML template for notification emails
Whether to require Google reCAPTCHA verification
Whether to require Cloudflare Turnstile verification
Whether to filter duplicate submissions
Heading text for redirect page
Message text for redirect page
Cloudflare Turnstile secret key
Subject line for auto-reply emails
Text color for submit button (hex code)
List of content patterns to block in submissions
Greeting text for auto-reply emails
Whether to send data receipt emails
Cloudflare Turnstile site key
From name for auto-reply emails
Comma-separated list of email addresses to notify on submission
Whether to use a custom template for notification emails
Custom subject line for notification emails
URL to redirect to when reCAPTCHA verification fails
Text for button on redirect page
Whether to hide the dashboard button on success page
Whether to validate email addresses via SMTP
Comma-separated list of CC email addresses for notifications
Name to show as sender in notification emails
Background color for submit button (hex code)
Comma-separated list of BCC email addresses for notifications
Comma-separated list of whitelisted source domains
Custom HTML template for auto-reply emails
Text color for redirect page button (hex code)
Whether to exclude the submitter from reply emails
Whether to use a custom template for auto-replies
ID of confirmation mail template to use
ID of notification mail template to use
ID of auto-response mail template to use
Background color for redirect page button (hex code)
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_UPDATE_PROJECTTool to update details of an existing project. Use when you need to change a project's name after confirming the project ID. Example: "Update project 123 to 'Rebrand Launch'".
Input parameters
New name for the project. Must be non-empty and cannot exceed 100 characters.
ID of the project to update
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
BASIN_UPDATE_WEBHOOKTool to update settings of an existing webhook for a form. Use after obtaining the webhook's ID.
Input parameters
Endpoint URL to receive webhook payloads
Human-readable name for this webhook
Payload format for this webhook. Valid values: 'json', 'slack', 'form_url_encoded'
Whether this webhook is active after update
ID of the form this webhook is attached to
ID of the webhook to update
If true, send this webhook even on spam submissions
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 35 agents privately built on Nagent that already use Basin.
Build on Nagent
Connect Basin to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Basin, and click "Connect Now." You'll authenticate with an API key — Nagent handles credential storage and refresh automatically. Once connected, Basin is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Basin is connected, you configure its 19 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Basin steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Basin event fires, the agent kicks off automatically.
Every Basin action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Basin ships with 19 pre-built forms & surveys actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Basin together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Basin-based workflows tailored to your business.