Bento Bubble Integration
Learn how to set up and use Bento's Bubble plugin for server-side actions, events, subscriber management, and transactional emails.

Overview
Bento's Bubble plugin enables server-side actions within your Bubble workflows, providing:
- Bento Events - Track user actions and behaviors
- Subscriber Management - Import and manage subscribers with commands
- Transactional Emails - Send dynamic emails from Bubble workflows
- Real-time Integration - Seamless data flow between Bubble and Bento
Prerequisites
- An active Bento account
- A Bubble account with the ability to install plugins
- Your Bento API keys (publishable key, secret key, and site UUID)
Setup Guide
- In your Bubble app, navigate to the Plugins tab
- Search for "Bento" in the plugin marketplace
- Install the Bento plugin
The plugin requires three settings to be set in the plugin settings:
- publishable_key: Your Bento publishable key
- secret_key: Your Bento secret key
- site_uuid: Your Bento site UUID
These will be used across all Bento actions in your workflows.
Available Actions
1. Bento - Send Event (Dynamic)
Category: Data (Things)
Track user actions and behaviors in your Bubble app. Events sent will add the subscriber via the email address if they do not already exist. If the subscriber does exist, the event will be added to the existing subscriber. Events can also start flows, and other automations.
Required Parameters:
- Name
email
- Type
- dynamic text
- Description
User's email address
- Name
type
- Type
- static text
- Description
Event type (e.g., "$completed_onboarding", "$purchase")
Optional Parameters:
- Name
detail_data
- Type
- dynamic json text
- Description
Event details json, e.g.,
{ plan: "pro", quantity: 10 }
- Name
first_name
- Type
- dynamic text
- Description
User's first name
- Name
last_name
- Type
- dynamic text
- Description
User's last name
- Name
company_name
- Type
- dynamic text
- Description
User's company name (e.g., "Acme Inc")
- Name
job_title
- Type
- dynamic text
- Description
User's job title (e.g., "CEO")
- Name
phone_number
- Type
- dynamic text
- Description
User's phone number (e.g., "+1 555-555-5555")
- Name
source
- Type
- dynamic text
- Description
Sign-up source (e.g., "website", "event", "app")
- Name
status
- Type
- dynamic text
- Description
User status (e.g., "active", "inactive")
Example Usage:
email: Input Email's value
type: "$completed_onboarding"
first_name: Input First Name's value
last_name: Input Last Name's value
detail_data: {"purchase_amount": 99.99, "product_id": "SKU123"}
2. Subscriber Action
Category: Data (Things)
Manage subscribers with various commands. This is effective for managing subscriber status (subscribed or unsubscribed), or fields and tags for updating subscriber metadata in one-off cases. This action should not be used for batch updates, and is heavily rate limited.
Required Parameters:
- Name
email
- Type
- dynamic text
- Description
Target subscriber email address
- Name
command
- Type
- static select
- Description
The command to execute
Available Commands:
subscribe
- Add subscriber to listunsubscribe
- Remove subscriber from listadd_tag
- Add tag to subscriberremove_tag
- Remove tag from subscriberadd_field
- Add custom field valueremove_field
- Remove custom field
Optional Parameters:
- Name
query
- Type
- dynamic text
- Description
Command parameter (required for most commands, e.g., tag name or field value)
- Name
field_name
- Type
- dynamic text
- Description
Used with "add_field" to define the field key
- Name
field_value
- Type
- dynamic text
- Description
Used with "add_field" to define the field value
Example Usage:
command: "add_tag"
email: "[email protected]"
query: "purchased"
3. Subscriber Update
Category: Data (Things)
Update subscriber information during import.
Required Parameters:
- Name
email
- Type
- dynamic text
- Description
Subscriber email address (validated)
Optional Parameters:
- Name
first_name
- Type
- dynamic text
- Description
Subscriber's first name
- Name
last_name
- Type
- dynamic text
- Description
Subscriber's last name
- Name
tags
- Type
- dynamic text
- Description
Comma-separated string of tags to add (e.g., "lead,mql")
- Name
remove_tags
- Type
- dynamic text
- Description
Comma-separated string of tags to remove
- Name
custom_fields
- Type
- dynamic object
- Description
Any additional custom fields, automatically handled
Features:
- Automatic custom field handling
- Tag management during import
4. Bento Transactional
Category: Data (Things)
Send transactional emails from Bubble workflows.
Required Parameters:
- Name
to
- Type
- dynamic text
- Description
Recipient email address
- Name
from
- Type
- static text
- Description
Sender email address. MUST be an existing author in your account
- Name
subject
- Type
- dynamic text
- Description
Email subject line
- Name
html_body
- Type
- dynamic text
- Description
HTML content of the email
- Name
transactional
- Type
- boolean
- Description
Set to true to send a transactional email that ignores if the user has unsubscribed. USE WITH CAUTION
Optional Parameters:
- Name
text_body
- Type
- dynamic text
- Description
Plain text version of the email
- Name
personalizations
- Type
- dynamic object
- Description
Dynamic variables for the email
Example Usage:
to: "[email protected]"
from: "[email protected]"
subject: "Welcome to our platform!"
html_body: "Welcome {{name}}!
Thanks for signing up.
"
personalizations: '{"name": "John Doe", "link": "https://example.com"}'
Best Practices
Event Best Practices
- Use descriptive event types (e.g., "$purchase", "$signup")
- Include relevant detail_data for segementation of subscribers
- Track user journey milestones
- Use consistent naming conventions
Common Use Cases
User Registration Flow
- User signs up in Bubble
- Send "Subscriber Update" action to add to Bento
- Send "$signup" event with user details
- Event triggers welcome email and starts onboarding journey
E-commerce Purchase
- User completes purchase
- Send "$purchase" event with order details
- Send order confirmation email via event and Bento flow
User Engagement
- User completes onboarding
- Send "$completed_onboarding" event
- Add "onboarded" tag via Bento flow
- Trigger next steps in workflow
Troubleshooting
Authentication Issues
- Verify API keys are correct
- Check site UUID format
Error Handling
The plugin includes comprehensive error handling with detailed messages for troubleshooting:
- Authentication errors: Check API keys and permissions
- Validation errors: Verify input data format
- Network errors: Check connectivity and API status
- Rate limiting: Implement appropriate delays
Advanced Features
Custom Fields
- Automatically handle any additional properties in detail_data for easy enrichment
- Support for complex data structures
- Flexible field naming conventions
Tag Management
- Use comma-separated strings for easy Bubble integration
- Support for bulk tag operations
- Automatic tag validation, if it doesn't exist it will be created
Personalizations
- Accept JSON strings
- Dynamic content injection in emails
Support
Contact Bento support via:
- Email: [email protected]
- Discord: Bento Community