10 Prompts for Low-Code / No-Code Mastery: Airtable, Bubble, and Retool
Low-code and no-code platforms have transformed how teams ship internal tools, automate workflows, and build customer-facing apps. Yet many users rely on default templates and repetitive clicks. The real power lies in combination with AI assistants: by giving a well-crafted prompt, you can generate formulas, debug workflows, or design data models in minutes. This article brings ten tested prompt templates for three major platforms — Airtable, Bubble, and Retool. Each prompt includes a clear task, the exact prompt text you can copy, and an example of the output you should expect. Whether you're a founder, a operations expert, or a developer looking to accelerate, these prompts will give you a head start.
Why Prompts Matter on Low-Code Platforms
Low-code platforms allow you to build without writing code from scratch, but you still need to think logically about data relationships, security rules, and event-driven flows. Large language models (LLMs) can assist with these tasks if you frame them correctly. According to the official Airtable Community, formula errors are among the top questions asked, and Bubble's forum is full of "how do I make this workflow" threads. A precise prompt helps you skip the trial-and-error cycle by providing a structured solution. Below, we break down prompts by platform, starting with Airtable, then Bubble, and finally Retool.
Airtable Prompts
1. Design a Relational Schema for a CRM
Task: Turn a plain spreadsheet into a normalized Airtable base with linked records and lookups.
Prompt:
You are an Airtable base architect. I have a single table called "Leads" with the columns: Company, Contact Name, Email, Phone, Industry, Deal Value, Status. I also have "Deals" and "Contacts" tables that need to be connected. Create a new base structure with at least 4 tables, define primary fields, link fields, and rollup fields. Explain why each relationship is many-to-one or many-to-many.
Example result: A table structure like this:
| Table | Primary Field | Linked Fields | Notes |
|---|---|---|---|
| Companies | Company Name | Contacts (many-to-many), Deals (one-to-many) | Industry, Website |
| Contacts | Contact Name | Company (many-to-one), Deal (many-to-one) | Email, Phone |
| Deals | Deal Name | Company (many-to-one), Contacts (many-to-many) | Value, Status, Close Date |
| Tasks | Task Name | Contact (many-to-one), Deal (many-to-one) | Due Date, Status |
The prompt forces the AI to think about entity relationships and normalization, saving you hours of design time.
2. Generate a Rollup Field Formula for Sales Pipeline
Task: Sum the total deal value for each company using a rollup field.
Prompt:
In Airtable, I have a Companies table and a Deals table. The Deals table has a link to Companies and a numeric field called "Amount". Create a rollup field in Companies that sums all linked deals. Also add a second rollup to count only deals with status "Closed Won". Provide the exact formula for each.
Example result:
=SUM(Deals::Amount)
=COUNTALL(Deals::Status = "Closed Won")
The AI also explains that you can use parentheses for conditional count: =SUM(IF(Status='Closed Won', Amount, 0)) if you want a sum instead of count. This is a common pattern for revenue reporting.
3. Create an Automation Script to Sync Airtable Data to Slack
Task: Use Airtable's Scripting extension to send a Slack message when a record is created.
Prompt:
Write an Airtable Scripting block script that runs when a new record is added to the "Helpdesk" table. The script should send a Slack message to the #support channel using a webhook URL stored in a config table. Include the record's fields: Customer Name, Issue Description, and Priority. Use the built-in fetch function and handle errors.
Example result:
let config = base.getTable('Config').getAllRecords()[0];
let url = config.getCellValue('Slack Webhook');
let record = input.record;
let message = `New ticket from ${record.getCellValue('Customer Name')}: ${record.getCellValue('Issue Description')} (Priority: ${record.getCellValue('Priority')})`;
let response = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: message })
});
if (response.status !== 200) {
throw new Error('Slack send failed');
}
This prompt provides a production-ready script that uses Airtable's async fetch API, which is documented in Airtable's Scripting Reference.
4. Write a Formula to Calculate Days Until Due Date
Task: Build a formula that shows "Overdue", "Due today", or "X days left" based on a date field.
Prompt:
Create an Airtable formula for a "Due Date" field. The result should be:
- If the due date is in the past: "Overdue by N days"
- If today's date equals the due date: "Due today"
- If the due date is in the future: "N days left"
Use the TODAY() function. Write the formula and test it with a sample.
Example result:
IF(
IS_BEFORE({Due Date}, TODAY()),
"Overdue by " & DATETIME_DIFF(TODAY(), {Due Date}, 'days') & " days",
IF(
{Due Date} = TODAY(),
"Due today",
DATETIME_DIFF({Due Date}, TODAY(), 'days') & " days left"
)
)
The AI also warns about date formatting and uses DATETIME_DIFF, which is a built-in Airtable function (see Airtable's formula reference).
Bubble Prompts
5. Generate Privacy Rules for a Multi-Tenant App
Task: Ensure users can only see their own data in a Bubble app where each user belongs to a company.
Prompt:
In Bubble, I have a data type "Transaction" with fields: Description, Amount, Created By, and Company. I also have a User data type with a "Company" field. Write the privacy rules for Transaction so that:
- A user can read only transactions where Company = Current User's Company.
- A user can create transactions but only with their own ID as Created By.
- A user can edit their own transactions.
Provide the actual rule expressions.
Example result:
For "Who can read?" use:
This Transaction's Company = Current User's Company
For "Who can create?" use:
Current User is logged in AND This Transaction's Created By's Email = Current User's Email
For "Who can edit?" use:
(This Transaction's Created By = Current User) OR (Current User's Role is Admin)
Bubble's privacy rules are a core security feature. This prompt helps you avoid leaking data across tenants, a common pitfall for beginners (see Bubble's help guide on data security).
6. Create a Workflow to Handle Image Uploads and Resizing
Task: Automatically resize uploaded images to a thumbnail and store the URL in a database.
Prompt:
Design a Bubble workflow triggered when a user uploads a photo to the "Photos" table. The workflow should:
1. Upload the file to Bubble's file storage.
2. Create a new record in "Photo" with the original URL.
3. Use Bubble's built-in Plugins (e.g., Image Resizer) to create a 200x200 thumbnail.
4. Show a loading indicator during the process.
List the steps and the relevant backend workflow settings.
Example result: A step-by-step description: Add a custom event "Image Added" from the upload element. In the Backend Workflow, schedule a repeating event or use an API workflow. Then use the "Image Resizer" plugin to generate a second URL. Finally, save both URLs in the database. The AI suggests using a custom event to decouple the UI and backend, which follows Bubble's recommended architecture.
7. Build a Dynamic List with a Repeating Group and Custom States
Task: Display a list of tasks with a search filter and sort order without refreshing the page.
Prompt:
In Bubble, I want to show a repeating group of tasks from the database. I need a search box and a dropdown to sort by "Due Date" or "Priority". Configure the repeating group's data source and the workflows so that the list updates live as the user types. Include custom states for the current filter and sort.
Example result: The AI suggests creating three custom states: FilterValue, SortValue, and Data. Set the repeating group's type of content to "Task" and its data source to a list built by a custom state. Then use a workflow: when the input's value changes, set FilterValue to the text and refresh the list. The AI also warns to use "Do a search for" with constraints like Title contains FilterValue.
8. Debug a Bubble Workflow with a Step-by-Step Audit
Task: Fix a bug where a workflow sends an email twice.
Prompt:
I have a Bubble app with a workflow triggered by a button click. It sends a confirmation email using SendGrid. The email arrives twice for some users, but not all. List all possible causes and provide a debugging workflow. Include specific places to check in Bubble's editor, such as the workflow trigger options and the "When" condition.
Example result: The AI explains that double firing is often caused by the workflow running both in the client and the backend, or by a repeating group's interaction. It suggests checking the workflow's type (Standard vs. Backend), ensuring the event fires only once, and adding a "Do a search for" check before sending. This prompt is valuable because it teaches systematic debugging, not just a one-off fix.
Retool Prompts
9. Generate a SQL Query for a Table Component with Dynamic Filters
Task: Build a SQL query in Retool that uses input values from a text input and a dropdown to filter a Postgres table.
Prompt:
Write a Postgres SQL query for Retool's query editor. I have a table "orders" with columns: id, customer_name, status, amount, created_at. The UI has a text input `{{searchInput.value}}` and a dropdown `{{statusSelect.value}}`. The query should filter rows where customer_name contains the search input, and status equals the dropdown value if it is not 'all'. Also include an optional date range filter from two date pickers.
Example result:
SELECT *
FROM orders
WHERE
customer_name ILIKE '%'
|| {{searchInput.value}} || '%'
AND ({{statusSelect.value}} = 'all' OR status = {{statusSelect.value}})
AND created_at >= {{startDate.value}}
AND created_at <= {{endDate.value}}
ORDER BY created_at DESC;
This prompt teaches parameterized queries in Retool, which is essential to prevent SQL injection and keep filters flexible.
10. Create a JavaScript Transformer to Compute Sales Metrics
Task: Transform query results into aggregated metrics for a dashboard grid.
Prompt:
In Retool, I have a query `getSales` that returns sales records: id, product, region, salesperson, units, price. I need a JavaScript transformer that computes: total revenue (units * price), average revenue per sale, and revenue by region. Provide the code and show how to display it using a Text or Chart component.
Example result:
const sales = getSales.data;
const totalRevenue = sales.reduce((sum, s) => sum + s.units * s.price, 0);
const avgRevenue = totalRevenue / sales.length;
const byRegion = sales.reduce((acc, s) => {
acc[s.region] = (acc[s.region] || 0) + s.units * s.price;
return acc;
}, {});
return { totalRevenue, avgRevenue, byRegion };
You can then bind {{transformer1.totalRevenue}} in a Text component. Retool's transformer documentation (official) recommends this pattern for complex client-side calculations without extra queries.
Conclusion
These ten prompts are just a starting point. The key to getting high-quality outputs is to be specific about your data schema, desired outcome, and constraints. Test each prompt in your own workspace, and modify them to fit your exact field names and business logic. As low-code platforms evolve, the ability to combine visual development with AI assistance will become a core skill. Bookmark this collection, share it with your team, and start automating your workflow today. For more in-depth guides, consult the official Airtable, Bubble, and Retool documentation — they all include API references and community forums where these patterns are discussed.
Comments