Bubble is a visual programming language and a PaaS developed by Bubble Group.
Bubble is a visual programming language and a PaaS developed by Bubble Group. On Nagent, Bubble is exposed as a fully-configurable app builder integration that any agent can call — 15 actions, and API key authentication. No code is required to wire Bubble into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Bubble to automate the kinds of tasks app builder 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 Bubble 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 Bubble, with input parameters and output schema. Drop these into any step of an agent built in Helix.
BUBBLE_DATA_BULK_CREATE_THINGSTool to bulk create multiple Things in Bubble via newline-separated JSON. Use when you need to insert many records at once. Must have Create via API permission.
Input parameters
List of objects to create. Must contain between 1 and 1000 items.
Bubble data type API name (lowercase, no spaces).
Bubble app subdomain to target *.bubbleapps.io (e.g., 'my-bubble-app').
Custom domain host (e.g., 'myapp.example.com').
Full URL override for the bulk endpoint. If provided, the request will be sent to this URL as-is, ignoring 'typename', 'custom_domain', and 'subdomain'.
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
BUBBLE_DATA_CREATE_THINGTool to create a new Thing. Use when providing a complete JSON payload to add a new record.
Input parameters
JSON object mapping field names to values for the new Thing. Required fields must be provided (e.g., 'email' for the User type).
Name of the data type (Thing) to create (case-sensitive).
Bubble app subdomain to target *.bubbleapps.io (e.g., 'my-bubble-app').
Custom domain host (e.g., 'myapp.example.com').
Full URL override for the create endpoint. If provided, the request will be sent to this URL as-is, ignoring 'typename', 'custom_domain', and 'subdomain'.
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
BUBBLE_DATA_DELETE_THING_BY_IDTool to delete a Bubble Thing by its unique ID. Use when you need to remove a specific record via the Bubble Data API.
Input parameters
Unique identifier of the record to delete
Bubble data type name (must be lowercase, no spaces)
Bubble app subdomain to target *.bubbleapps.io (e.g., 'my-bubble-app').
Custom domain host (e.g., 'myapp.example.com').
Full URL override for the delete endpoint. If provided, the request will be sent to this URL as-is, ignoring 'typename', 'custom_domain', and 'subdomain'.
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
BUBBLE_DATA_GET_THING_BY_IDRetrieves a single Thing (record) from a Bubble Data Type by its unique ID. This is a read-only operation that fetches complete details of a specific record. The response includes all custom fields defined in the Data Type, plus standard Bubble fields (_id, created_by, created_date, modified_date). Use when you need to: - Fetch details of a specific record you know the ID of - Verify a record exists - Get the latest field values for a Thing Note: Requires the Data API to be enabled in your Bubble app settings and the specific Data Type to be exposed via the API.
Input parameters
The unique identifier of the Thing to retrieve. This is the value returned in the '_id' or 'id' field when the Thing was created. Bubble typically uses format like '1234567890123x123456789012345678'.
The Bubble Data Type name (case-sensitive). This is the custom data type defined in your Bubble app (e.g., 'user', 'order', 'product'). Check your Bubble app's Data tab for available types.
Bubble app subdomain to target *.bubbleapps.io (e.g., 'my-bubble-app').
Custom domain host (e.g., 'myapp.example.com').
Full URL override for the GET endpoint. If provided, the request will be sent to this URL as-is, ignoring 'typename', 'custom_domain', and 'subdomain'.
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
BUBBLE_DATA_PATCH_THING_BY_IDTool to modify selected fields on a Thing by its unique ID. Use after confirming the Thing exists.
Input parameters
Unique ID of the record to modify.
Data type name in URL format (lowercase, no spaces).
Bubble app subdomain to target *.bubbleapps.io (e.g., 'my-bubble-app').
Custom domain host (e.g., 'myapp.example.com').
JSON object of fields to update. Each key is an existing field name; each value must match the field’s type.
Full URL override for the patch endpoint. If provided, the request will be sent to this URL as-is, ignoring 'typename', 'custom_domain', and 'subdomain'.
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
BUBBLE_DATA_PUT_REPLACE_THING_BY_IDTool to replace all editable fields on a Thing by its Unique ID. Use when you need a full overwrite of a Thing's fields and reset omitted fields to default.
Input parameters
Unique ID of the Thing to overwrite.
Mapping of each editable field name to its new value. Omitted editable fields will be reset to their default values.
Bubble data type name to target for replacement.
Bubble app subdomain to target *.bubbleapps.io (e.g., 'my-bubble-app').
Custom domain host (e.g., 'myapp.example.com').
Full URL override for the PUT endpoint. If provided, the request will be sent to this URL as-is, ignoring 'typename', 'custom_domain', and 'subdomain'.
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
BUBBLE_FILE_DOWNLOADTool to download a file given its URL. Use when you need to retrieve file content and obtain an s3key for subsequent upload tests.
Input parameters
HTTP or HTTPS URL of the file to download.
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
BUBBLE_FILE_TEMP_CREATETool to upload bytes as a temporary file to Cloudflare R2 and return an S3 key. Use when you need a short-lived file reference before persisting it in a Thing.
Input parameters
Name to assign to the temporary file (including extension)
Base64-encoded file contents or plain text data
MIME type of the file
Bubble app subdomain to target *.bubbleapps.io (e.g., 'my-bubble-app').
Custom domain host (e.g., 'myapp.example.com').
Full URL override for the temp upload endpoint. If provided, the request will be sent to this URL as-is.
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
BUBBLE_FILE_UPLOADTool to upload a file to Bubble storage. Use when you need to store arbitrary files via Bubble's /fileupload endpoint.
Input parameters
File to upload.
Bubble subdomain (e.g., 'my-app') to target https://<subdomain>.bubbleapps.io/fileupload
Custom domain host (e.g., 'app.example.com') to target https://<host>/fileupload
Optional additional multipart form fields to include in the upload request.
Full URL override for the upload endpoint (e.g., https://httpbin.org/post)
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
BUBBLE_META_GET_SWAGGER_JSONTool to retrieve the auto-generated Swagger JSON for enabled APIs. Use after enabling the Swagger file in your Bubble app's API settings.
Input parameters
Bubble app subdomain (e.g., 'my-bubble-app') to target *.bubbleapps.io.
Full URL to the Swagger 2.0 JSON to fetch. Takes precedence if provided.
Custom domain host to target (e.g., 'myapp.example.com').
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
BUBBLE_O_AUTH_ACCESS_TOKENTool to exchange an authorization code or refresh token for an OAuth2 access token. Use after obtaining an authorization code or when refreshing an expired token.
Input parameters
Authorization code returned from /oauth/authorize; required for initial exchange.
OAuth client identifier.
Bubble app subdomain (e.g., 'my-bubble-app').
Must be 'refresh_code' when exchanging a refresh token for a new access token. Note: Bubble uses 'refresh_code' instead of the standard OAuth 2.0 'refresh_token' value.
Redirect URI used during the authorization request.
OAuth client secret.
Custom domain host (e.g., 'myapp.example.com').
Previously issued refresh token; required when grant_type='refresh_code'.
Whether to target the '/version-test' environment when building the URL.
Full URL to the token endpoint. If provided, takes precedence over domain/subdomain/metadata-derived URL.
Additional fields to include in the POST JSON body.
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
BUBBLE_OAUTH_AUTHORIZETool to initiate OAuth2 authorization flow for Bubble. Use when setting up third-party login integration. Returns the URL for user-agent redirection to obtain an authorization code.
Input parameters
Space-delimited list of scopes being requested.
Opaque value to maintain state between the request and callback (CSRF token, etc).
OAuth client identifier issued by Bubble when you register your application.
Bubble app subdomain (e.g., 'my-bubble-app') to target *.bubbleapps.io.
Additional query parameters to include in the authorize request.
Callback URL where Bubble will send the authorization code.
Custom domain host to target (e.g., 'myapp.example.com').
OAuth response type. For authorization code flow this should be 'code'.
If True, use '/version-test' in the root path for Bubble apps.
Full URL to the authorization endpoint. If provided, takes precedence over subdomain/custom_domain/metadata-derived URL. Useful for testing against non-Bubble endpoints (e.g., httpbin) or when metadata contains placeholders.
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
BUBBLE_O_AUTH_REGISTER_APPTool to validate/initialize OAuth application credentials with Bubble. It performs a real call to Bubble's /oauth/authorize endpoint (or provided override) using client_id and redirect_uri to confirm connectivity and returns supplied credentials.
Input parameters
OAuth client identifier as configured in Bubble editor.
Bubble app subdomain (e.g., 'my-bubble-app').
Additional query parameters to append to the authorize request.
Redirect URI configured in the Bubble OAuth app.
OAuth client secret as configured in Bubble editor.
Custom domain host (e.g., 'myapp.example.com').
Whether to target the '/version-test' environment.
Full URL to call instead of constructing from domain/subdomain. Useful for testing.
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
BUBBLE_WORKFLOW_TRIGGER_GETTrigger a Bubble API workflow using an HTTP GET request. API workflows are server-side workflows in Bubble that can be triggered externally. Use GET for simple workflows that don't require a request body (parameters passed as query strings). For workflows requiring complex data or file uploads, use the POST version instead. Before using: The workflow must be created in Bubble's workflow editor and marked as "Expose as a public API workflow". The Bubble app must have API access enabled in its subscription.
Input parameters
Bubble deployment branch to target. Use 'live' for production workflows or 'version-test' for development/testing workflows.
Query string parameters to pass to the workflow, matching the workflow's defined inputs. Each key should match a parameter name configured in your Bubble workflow. Values can be strings, numbers, booleans, or simple objects. Example: {'user_id': '123', 'send_email': true, 'priority': 1}
Name of the API workflow to trigger (as defined in Bubble's workflow editor). This is the exact name you gave the workflow, which becomes part of the endpoint URL. Example: if your workflow is named 'send_email', use 'send_email'.
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
BUBBLE_WORKFLOW_TRIGGER_POSTTriggers a Bubble API workflow by name using a POST request. Use this tool to execute backend workflows in your Bubble application. The workflow must be configured in your Bubble app's API Workflows section with "Expose as public API workflow" enabled. Pass any required parameters as a JSON object in the parameters field.
Input parameters
Deployment branch to target. Use 'live' for production environment or 'version-test' for development/testing environment.
JSON body parameters to pass to the workflow, matching the workflow's configured input parameters. Use ISO 8601 format for dates (e.g., '2024-01-15T10:30:00Z'), and unique IDs (strings) for Bubble data type references.
URL-friendly name of the Bubble API workflow to trigger. This is the name you configured in your Bubble app's API Workflows section, converted to lowercase with hyphens instead of spaces (e.g., 'send-email', 'process-payment').
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 86 agents privately built on Nagent that already use Bubble.
Build on Nagent
Connect Bubble 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 Bubble, and click "Connect Now." You'll authenticate with an API key — Nagent handles credential storage and refresh automatically. Once connected, Bubble is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Bubble is connected, you configure its 15 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Bubble 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 Bubble event fires, the agent kicks off automatically.
Every Bubble 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 Bubble ships with 15 pre-built app builder actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Bubble together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Bubble-based workflows tailored to your business.